Created: Mar, 2016;
Last modified: Apr, 2016
Mutt is a good old lean mail client flying under the radar in this chaotically hyped digital era. I have an old post configuring Mutt with external IMAP and SMTP programs. Now I feel it should be “leaner”. The goal of post is to set up Mutt with
My configuration can be found in this repo. PGP configuration is on my TODO list.
In Debian or Ubuntu, don’t install mutt from repo because it involves too many other libraries, and is also probably too old. Instead, compile it from source.
First, install dependencies with this command:
sudo apt-get install build-essential libncurses-dev libssl-dev libtokyocabinet-dev libsasl2-modules libsasl2-dev elinks
which is itemized with explanation as follows:
sudo apt-get install build-essential # install make and gcc etc. sudo apt-get install libncurses-dev sudo apt-get install libssl-dev # openssl libraries, needed for IMAP TLS connection sudo apt-get install libtokyocabinet-dev # needed for header_cache option below sudo apt-get install libsasl2-modules libsasl2-dev # needed to use built-in SMTP function, see http://j.mp/1RWKLAf sudo apt-get install elinks # for viewing HTML in Mutt; more later
And then download Mutt, compile it and install
# those options are disabled by default, but important to make mutt receive and send emails correctly ./configure --enable-pop --enable-imap --enable-smtp --with-ssl --enable-hcache --with-sasl --with-gnutls --enable-pgp --enable-debug --enable-nls make sudo make install
This will install mutt to
/usr/local/bin/mutt with the desired features (IMAP, SMTP, caching, etc.) enabled.
If the mail service supports using app-specific passwords, use it! For Gmail and Yandex Mail, you will be rejected when using master password (the one you use to log in the web mail) in a 3rd-party mail client such as Mutt for good security reasons.
My Mutt configuration template repo makes setting up Mutt simple:
git clone https://github.com/hwsink/mutt_config.git mv mutt_config ~/.mutts cd ~/.mutts mkdir rc signatures cp rc_templates/gmail rc/gmail_john # make an instance of gmail config in rc_templates vim rc/gmail_john # do you editing here # optional # vim signatures/default.sig mutt -F ~/.mutts/rc/gmail_john
The idea is to create different “muttrc” files for different accounts, and access those mail accounts in different sessions with
mutt -F ~/.mutts/rc/gmail_john
Many people also use the “folder hook” and “account hook” features of Mutt to bring multiple accounts in a single Mutt session, but I just find my way easier and less confusing.
Notice that this configuration templates also contains a mailcap file which automatically renders HTML emails with elinks in Mutt. See this section for details.
Mutt shows keyboard binding at the top of CLI view, with quite amount of VIM-like key bindings.
Search message in Mutt: very similar to vim. For example,
/ for search,
n for search next, etc.
Mutt will keep deleted IMAP messages in the view until the program exit. To “purge” them right away, press
$. See this post.