I do quite a bit of e-mail and, as far as e-mail clients go, I’ve seen them all. During the last couple of years I’ve noticed a tendency at the Mens’ workstation to use Apple’s Mail.app because it has a killer feature called Quick Look. Apart from that there is no feature I particularly enjoy, but there are some I detest:

  • Incapacity to restrict IMAP folders to subscribed folders. This one really pisses me off.
  • Inability to format plain text messages in such a way as that line lengths are limited, both on composition and reception.
  • Sluggishness with large mail folders

For a very short while I used Miramar, Mozilla’s preview of the next Thunderbird. It’s ok and improves on the three bullet points above, but I suddenly realized I just don’t feel comfortable enough with a GUI e-mail user agent, and that’s that. Back to square one, and one thing is sure: I should have stayed there. It took a bit, but I finally decided to basically scrap the GUI, and at least limit it severely, and move back to using the mail client that sucks less. Sounds strange doing so on a Mac? Not really: I live in a terminal anyway half the time, so it’s natural to me. I’m won’t clog up the Internets with snippets of configuration of what I did, because there are more than enough of those floating around. Instead, let me describe a bit of how I’m now working:

  • Mail dribbles in via IMAP, and I store that locally. Offline. (Remember: it’s always good to keep a backup of your stuff, particularly if it’s in a cloud…)
  • Messages are stored in Maildir format, allowing me to use the usual huge batch of UNIX utilities on them.
  • Mutt is my primary interface. As it accesses local Maildir files it is blazingly fast.
  • Simultaneously I have a Dovecot IMAP server running on the workstation, which offers my INBOX via IMAP to clients on the local machine. Note, that I said Inbox only. This is important for the next point.
  • I still have Mail.app running with a single account bound to localhost, and the only thing Mail.app sees is the Inbox, so it doesn’t retrieve, store, or index all other messages. Just the Inbox. Why Mail.app? Because of the killer feature I mentioned above, and so that I can drag and drop an image onto an outgoing message once in a while.
  • And finally, I’m often offline, so I have a local Exim server which takes my outgoing mail and relays it on as soon as I’m connected. This way I can “send” mail even if I can’t ping the Internet and don’t notice.

So how is this a win-win situation?

Most of my mail is plain text, and as such, I don’t need more than Mutt. Furthermore, Mutt has a ton of marvelous features I use a lot:

  • Assign folders into which to save outgoing messages (fcc-save-hook) depending on addressee.
  • Folder-hooks allow me to map keys, set up automatic composition addresses, etc. depending on which folder I’m currently in. This is invaluable for mailing lists.
  • Message-hooks allow me to set specific pagers or output filters depending on the message I’m going to read.
  • Transparently handles alternate addresses, of which I have several.
  • Lets me tweak mailcap entries for ease of choosing applications to launch for particular attachments.
  • Lets me use Addressbook.app from external queries.

I could go on and on, telling you about Mutt, but I won’t. See for yourself.

“All mail clients suck. This one just sucks less.” (Michael Elkins, circa 1995)

Mail, Exim, IMAP, MacOSX, mail.app, and mutt :: 26 May 2011 :: e-mail