My Mutt


If you haven’t heard of mutt you’re missing out.

Mutt is a small but very powerful text-based mail client for Unix operating systems.

I started using the excellent terminal based mail client mutt recently, and its simplicity is totally refreshing. Using mutt, it quickly becomes apparent how much useless baggage many modern (i.e. lazy) mail clients (e.g. Microsoft Outlook) actually bog you down with, not to mention the harrowing way they actually encode mail. Its taken me years to understand this:

All mail clients suck. This one just sucks less.

Mutt is suprising feature packed. Supporting things like IMAP and threading out of the box.

As for most well designed software, its UNIX design philosophy becomes apparent, where it does its one thing well, and allows other complimentary programs to bolster it. In mutt’s case to do tricks like offline polling, so you can still effectively email while on a flight perhaps or without 3G reception.

Like all good things, there is a little initial pain involved. You’re going to need to understand how to craft a .muttrc to make mutt, your mutt.

The official manual is very good, but I learn fastest just trying things out. You can’t go past Dave Pearson’s fully documented muttrc. Or you can check mine out for a connected GMail setup. I also bound GMail’s web UI keyboard shortcuts as mutt bindings, and got it doing a solarized dark colorscheme.

### .muttrc

account-hook imap://gmail/ "set

set realname = "Ben Simmonds"
set from = ""
set imap_user = ""
set imap_pass = ""

set sort_browser="date"
set sort_aux=date-received #sort threads by date received.
set delete=ask-yes #ask before doing a delete.
set include #include message in replies.
set postpone=ask-no #ask about postponing.
set postponed="+[Gmail]/Drafts" #where postponed messages live.

set nomark_old #dont mark unread new messages as old.
set nobeep #dont make annoying beeping sounds.
set pager_context=3 #display 3 lines of context in the pager.
set pager_index_lines=5 #
set pager_stop #dont skip msgs on the next page.
set sort=threads
set nostrict_threads #fuzzy threading.
set quote_regexp="^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"

#remote gmail folders
set folder = "imaps://"
set mbox = "imaps://[Gmail]/All Mail"
set spoolfile = "+INBOX"
set record=""
#set record="+[Gmail]/Sent Mail"

#mutt dirs
set header_cache="~/.mutt/cache/headers"
set message_cachedir="~/.mutt/cache/bodies"
set certificate_file="~/.mutt/certificates"

set smtp_url = "smtp://"
set smtp_pass = ""

set move = no
set timeout=15
#set imap_keepalive = 900
#auto_view text/html

source ~/.mutt/macros.muttrc
source ~/.mutt/colors-solarized-dark-16.muttrc
source ~/.mutt/bindings.muttrc
source ~/.mutt/header.muttrc