Filing mail

By way of a tweet from Kirk McElhearn, I read Matt Gemmell’s paean to Mutt, the terminal-based email client. While I used Mutt for several years when I was a Linux user, and I still fire it up occasionally to check mbox archives of old messages, I wouldn’t consider going back to it. Even for someone who has a Terminal window open most of the time and spends much of his day typing text in a monospaced font, Mutt is just a little too primitive. But it does have one feature that I truly miss.

Mutt in a Terminal window

Let me start by explaining how I have my email set up. Because they involve accidents and failures, many of the projects I work on become the subject of litigation. When that happens, my work product, including my project correspondence, gets subpoenaed. Twenty-five years ago, that meant I had to make copies of letters and faxes; now it means I have to turn over all the incoming and outgoing email associated with a particular project. The only practical way I’ve found for doing that is to create mail folders for every project and save my messages into them.1

Filing incoming messages is pretty easy, especially with MailMate. MailMate has a Message‣Move to Mailbox… menu item (keyboard shortcut: ⌥⌘T) that acts a lot like LaunchBar and Spotlight: as you type the name of the folder you want to message to be filed in, a list appears with candidate folders. The more you type, the shorter the list becomes. If the selected folder at the top of the list is what you want, hit the Return key and the message is filed there. Alternatively, you can use the mouse or arrow keys to select one of the other folders in the list. However you do it, it’s very efficient, and much faster than Apple Mail’s filing method of dragging the message into the folder.2

MailMate folder selection

So filing incoming project messages is a breeze. As I go through my Inbox, I read the messages and just hit ⌥⌘T to start the filing process. The problem is with outgoing messages. MailMate puts these in the Sent folder, which means I have to remember to open the Sent folder and file the messages from there. For whatever reason, I just cannot get myself into the habit of doing that. So every week or so, I end up digging through my Sent folder and filing that week’s messages.

How did Mutt make this easier? Mutt allows you to choose the set of header lines that appear by default at the top of outgoing messages. I had my Mutt configured to include the Fcc header line (file carbon copy) by default. As I tabbed through the headers while composing an email, I’d hit that line and know that for project email I’d have to enter the name of the project email folder (actually an mbox file). It wasn’t that Mutt made the filing easier, it was that it made remembering to file easier.

As best I can tell, neither Apple Mail nor MailMate have an equivalent to the Fcc line. That may be because they don’t use the mbox format for email folders.

I know that some people like to configure their email clients to send themselves a copy of every outgoing message. This is typically done through the Bcc header line. I don’t do this because

  1. I need this special filing only for project email, and a lot of my messages aren’t associated with any particular project.
  2. I really dislike loading up my inbox with Bcc messages from myself. I’ve tried it and just couldn’t stand it.

Unfortunately, MailMate doesn’t have a “hooks” that allow a user to force a particular set of actions either before or after a common operation. I’m currently experimenting with a Keyboard Maestro macro that

  1. Sends the current message.
  2. Switches to the Sent folder.
  3. Selects the most recently sent message.
  4. Starts the Message‣Move to Mailbox… command and waits for the user to select the folder.
  5. Switches back to the Inbox.

At present, the macro is a little fragile, as it relies on simulating clicks in particular locations. If I ever get it to the point where I feel confident in using it in production, I’ll post it here.

In the meantime, I’ll limp along as I have been for the past ten years, thinking about that one Mutt feature I wish I still had.


  1. Strictly speaking, I don’t have to do this for projects that I know will never turn into litigation, but because I do it for all the other projects, I make email folders for these, too. 

  2. You can drag messages to folders in MailMate, too, but why would you?