Configuring Mutt
2014-04-18
On all of my computers, I like being efficient. That means eliminating everything which uses all that precious CPU time and using applications which are very customisable and configurable. These sorts of applications tend to be text-based, which is, in my eyes, a good thing, since they'll show you the information you need with a minimum of
distraction.
Mutt is a text based email client, and I think it's very well suited to the task - generally, when reading emails, you are dealing with text. The few times there are images, they're usually annoying HTML emails from websites or as an attachment, meaning it's not integral to the viewing of the email body itself.
Now that you're sold on the idea of a text-only email client, we can get started installing, configuring, and using it.
Installing Mutt
Mutt should be in the package manager repository for your OS. On
FreeBSD, you can install it with pkg install mutt
. On Debian, it's
apt-get install mutt
. The command to run should be similar on most
operating systems. If you're on Windows, I suggest you install Cygwin
and build from source, since that's really the only way you can get
Mutt.
Configuring Mutt
If you just run mutt
, you'll see that you've opened the local mail box
for your current user. In decades past, local mail was actually really
important - people sent mail to and from each other's servers, not
centralised servers like Outlook or Gmail. In any case, you don't want
this - you likely want to access your Gmail account, which is what I'll
be showing you how to do. The instructions for Yahoo or Outlook should
be similar, but consult their help pages for the server address and
port.
You need to create/edit the file ~/.muttrc
and input the following:
# The bit before @gmail.com in your address
set imap_user = "myname"
# Google's IMAP server, used to view mail
set folder = "imaps://imap.gmail.com:993"
# Google's SMTP server, used to send mail
set smtp_url = "smtp://[email protected]:587/"
# Displayed in the "from" field of your mail
set from = "[email protected]"
# Change this to your preferred editor
set editor = "vim + -c 'set textwidth=72' -c 'set wrap'"
# Sets your default inbox to the one on the IMAP server
set spoolfile = "+INBOX"
# Makes sure all your folders are polled for new mail
set imap_check_subscribed=yes
# Interval to check for new mail
set mail_check = 120
# Time to wait for server if connection drops
set timeout = 300
set imap_keepalive = 300
# Where Mutt keeps drafts
set postponed = "+[GMail]/Drafts"
# Mutt's cache settings, important for speed
set header_cache=~/.mutt/cache/headers
set message_cachedir=~/.mutt/cache/bodies
# Where mutt stores SSL certificates
set certificate_file=~/.mutt/certificates
# Mutt will never move mail from Gmail to your local mailbox
set move = no
# Include message you're replying to in the reply
set include
# Sorting by threads is very useful for keeping your mail in order
set sort = 'threads'
set sort_aux = 'reverse-last-date-received'
# Sets the height of the window opened to view a message
set pager_index_lines = 10
# I prefer not to show some of the headers, they get in the way
ignore "Authentication-Results:"
ignore "DomainKey-Signature:"
ignore "DKIM-Signature:"
hdr_order Date From To Cc
# A useful key binding to refresh your inbox
bind index "^" imap-fetch-mail
That might seem like a lot of variables, but they're all well-named and well-documented in Mutt's online manual. The manual is very extensive, and documents every variable you see above.
Opening Mutt and logging in
With the settings above, you're all set to open Mutt again. Type mutt
into a terminal and you'll see a prompt telling you whether to accept
Google's SSL certificates. Press "a" for "accept always" a few times
until all the certs are accepted.
Next, you'll see a password prompt, like this:
Password for [email protected]@imap.gmail.com:
Of course, type in your password, and it'll be sent off over an SSL connection to Google's IMAP server.
If all goes well, the next thing you see should be your inbox. If it hasn't worked, I advise that you ask on an IRC channel. Although it isn't strictly related to Arch, #archlinux on irc.freenode.net is very, very active, so you're likely to get an answer there.
Using Mutt
You can use the up and down arrow keys to scroll through the mail, as well as the standard Page Down and Page Up keys. You can also type in a number and a prompt should appear like this:
Jump to message: 1
If you look ot the far left of Mutt, you should see a column of numbers. Type in any one of those, and Mutt will jump to it.
If you want to open a message, press enter over one, and the bottom 4/5 of the screen should display the message, with the message inde open in the top 1/5.
When you're at the index (the screen you see just after loggging in), you should see this at the top:
q:Quit d:Del u:Undel s:Save m:Mail r:Reply g:Group ?:Help
You'll see bars like this at all screens of Mutt, so press "?" if you forget what a key does.
To send a message, press "m". You'll have to say who it's for and what it's subject is, then your editor will open, where you can type out the body of the message. It's best to keep the message to 72 columns wide, to maximise viewing pleasure for everyone involved.
After quitting your editor, you'll be taken to a screen with this at the top:
y:Send q:Abort t:To c:CC s:Subj a:Attach file d:Descrip ?:Help
It should be obvious how to send the mail or change the headers.
If you use mailing lists a lot (like I do), then you'll want to change mailboxes. You do that by pressing "c", typing "=mymailbox", and pressing enter. Of course, replace "mymailbox" with the actual name of the mailbox.
At this point, you should be able to use your new email client for most day-to-day tasks. If you need to do something more advanced, you should look at the manual I linked earlier.
For other interesting and useful text-based programs, this blog isn't a bad place to go.