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)