Monday, August 3, 2015

Reasons Why I Use the Mutt Mailreader

My favored mailreader is mutt.

The running joke is that I like it because it's conspicuously antediluvian.  Well, I don't dislike it for that reason, but there are better and more accurate reasons for why I actually like it.

The first and most important reason is that it has support (after a fashion) for tagging of mail messages.  I grew up (so to speak) on the Berkeley mailreader, which stored old messages into an array of files within an archive directory.  Although it's the term "directory" and not "file" that implies "folder" in a post-Windows world, these files are the moral equivalent of modern mail folders.

And folders are a distinctly sub-optimal way of organizing mail.  Suppose I have a folder for bills and statements, and a separate folder for medical.  So an e-mail receipt for the gas bill goes in the bills-and-statements folder, and an eyeglass prescription goes in the medical folder.  But what happens if I get a medical statement?  Where does that go?  Either I have to choose a folder to go in, or I save it in both folders.  The former makes it more difficult for me to find the message later on, and the latter is more tedious (some mailreaders consciously resist any attempts to store multiple copies) and causes consistency problems in case you want to go in and edit messages (for example, to make notes).

The proper solution to this problem is to support mail tagging, a la Gmail.  In Gmail, one creates tags, not folders, and then any number of tags can be attached to a given message.  One can put both the bills-and-statements tag and the medical tag on a medical statement e-mail, and then it will show up whenever you search either.  More usefully, you can search for both tags together, and then only medical statements (and anything else that has both tags simultaneously) will show up.  When I started using my Gmail account, I was blown away by how powerful an organizing mechanism tags were.  They basically implement multiple inheritance.  I never wanted to go back to folders for my personal e-mail.  I mean, social networking (including this blog) relies critically on tagging, why shouldn't e-mail?

Work e-mail, alas, was a different matter.  Understandably, they wanted people to use the company e-mail address and not a Gmail address, and the corporate IT infrastructure didn't support using the Gmail interface (at either of the places I worked at)—until, that is, I discovered mutt's tagging support.

To be sure, it is support after a fashion: It provides support for the X-Label header field, in terms of displaying it, but scripts have to be added in order to support adding the tags yourselves (because tags aren't very useful if you have to manually add them into the e-mail).  There's a certain amount of, ahh, customization needed to make the experience minimally unpleasant, but it's worth it.  The corporate-approved mailreader doesn't support tagging, and I won't (willingly) switch to it until it does.  We recently switched to an Exchange server, and that threatened to coerce me into the corporate mailreader, but I found a solution, Davmail, that provides an IMAP interface to an Exchange server, and that has permitted me to happily continue tagging my e-mail.

But that's only the most important reason I cleave to mutt.  Among others:
  • It can be used on any dumb text terminal you can think of, as long as it can log into my machine.  I occasionally have to check my mail on some remarkably incapable devices, and mutt will work on all of them.
  • It is blindingly fast, meaning that I can access and search my entire mail archive from years back and expect results back effectively the moment I hit the enter key.
  • It is remarkably configurable.  That's not a bonus for some people, but I like tinkering with my e-mail interface, and this suits me.
  • A somewhat backhanded compliment of mutt is that it prevents me from being exposed to e-mail attacks that depend on code being automatically loaded and executed within the e-mail message.  Well, OK, I do like that, but it's really a way of admitting that mutt can't possibly support the same kind of message display interface that a graphical mailreader can.
Mutt's slogan sums it up nicely: "All mail clients suck. This one just sucks less."