Posted on Thu 26 November 2020 in posts
After switching from Gmail to self-hosted email, managing the inbox has become more difficult. Making the switch made me realize something; I miss some of the features from Gmail. On my search for an alternative email client, I have seen RoundCube suggested as a web-based, open-source alternative. I started using RoundCube and never looked back, that is, until now. There must be a better way.
How do people even manage email when they don't use Gmail? This question led me down a path of creating filters and folders. If I wanted to send an email from a different account, I just logged in to the other account. While this worked, managing the inbox in this way feels so clunky when I compare it to the Gmail experience.
With Gmail, the process is simple. All of my email was forwarded to a single account and managed there. If I wanted to send an email from a different address, Gmail guided me through the process; it just worked. Processing email was a breeze. When finished processing an email, a simple hotkey (e) archives an email. None of the messages get deleted, which means there is no need to decide if an email might be necessary to you in the future. Archiving instead of deleting works because the search functions so well within Gmail. The goal is inbox zero.
There has to be a better way, right? In college, I worked in a computer lab in the English department for a semester. The technical writing instructor walked in one day and said he needed to check his email. Why in the lab? I didn't ask. What I did do, was observe him open a terminal and check his email in a way I had never seen before. I still didn't ask, but I am sure he was using Mutt. Today, I am going to give it a try.
Mutt is a text-based mail client renowned for its powerful features. Though over two decades old, Mutt remains the mail client of choice for a great number of power users. Mutt focuses primarily on being a Mail User Agent (MUA), and was originally written to view mail. Later implementations (added for retrieval, sending, and filtering mail) are simplistic compared to other mail applications and, as such, users may wish to use external applications to extend Mutt's capabilities.
Usually, for a CLI based application, I would look no further than the Arch Wiki. I begin to dig in. Thirty minutes later, I admit defeat. I do not recommend anyone using Mutt for the first time to attempt to configure Mutt manually. I recommend mutt-wizard to get some sensible defaults and customize from there.
After the initial set up, I was happy to find that vim-like navigation allowed me to start navigating through my inbox.
Mutt is highly configurable, but there is a steep learning curve. Let's discover some of the basics. The most useful command in Mutt is simply
?, this will list all of the configured keybindings.
First off, how the hell do I receive new emails? While mutt-wizard documentation states the command
mw -y [email protected] to sync an account, that feels cumbersome. Looking through the
.muttrc that mutt-wizard provided there is line that reads
macro index o "<shell-escape>mbsync -V ma-mail<enter>" which will sync mail by simply pushing
Other useful macros:
macro index,pager gi "<change-folder>=INBOX<enter>" "go to inbox" macro index,pager Mi ";<save-message>=INBOX<enter>" "move mail to inbox" macro index,pager Ci ";<copy-message>=INBOX<enter>" "copy mail to inbox" macro index,pager gd "<change-folder>=Drafts<enter>" "go to drafts" macro index,pager Md ";<save-message>=Drafts<enter>" "move mail to drafts" macro index,pager Cd ";<copy-message>=Drafts<enter>" "copy mail to drafts" macro index,pager ga "<change-folder>=Archive<enter>" "go to archive" macro index,pager Ma ";<save-message>=Archive<enter>" "move mail to archive" macro index,pager Ca ";<copy-message>=Archive<enter>" "copy mail to archive"