Mutt

I've been trying out mutt, for no good reason other than the joy of tinkering. Yes, I know what I said, but sometimes the lure of the dotfile is too strong. I've used Mailsmith for quite a while, and I like it a lot. However, given my current infatuation with vim, I couldn't resist trying an email client that allow you to use vim to compose emails, and furthermore has a lot of vim-like keystrokes for moving around your mailboxes and issuing commands.

Configuring mutt isn't exactly a walk in the park. For a start, it is really meant for reading and composing mail that is delivered and sent by other tools. If you compile it correctly, you can get it to check POP or IMAP servers, but it isn't ideal if you have a number of different accounts to check. So the first thing I did was to set up fetchmail to get my mail and dump it in my /var/mail directory. Then I configured procmail to send the mails to an inbox in my home directory, doing a bit of filtering along the way via the excellent SpamAssassin to add an X-Spam header to spam and dump it straight in a spam mailbox. So far, it was all relatively easy, as both fetchmail and procmail are built in to Panther.

Mutt compiled without problems, but then I was faced with the task of getting it set up the way I wanted it. I was helped a lot by looking at other people's .muttrc files posted in various locations on the web. However, I get the feeling that tailoring your .muttrc is a kind of lifelong journey, rather than a quick job. I suppose it might be the equivalent of tending bonsai trees for geeks. To say that mutt is highly configurable would be a massive understatement. Almost everything can be altered — if you know the arcane sequence of commands necessary to set it up.

Despite all this, mutt is a lot easier to actually use than I ever thought a command-line email reader would be. I've installed aspell to check my spelling interactively while composing emails, and lynx to auto-render HTML emails as plain text. Even attaching and saving attachments is much simpler than I had anticipated.

There are only a couple of outstanding glitches:

  • Teminal.app doesn't seem to be capable of displaying the mutt UI properly, so I'm running it inside screen which works fine.
  • I would like to set it up so that replies to certain mails use a particular from address, signature and so on. I think that this is possible with folder-hooks, but I haven't quite got my head around how to achieve it yet.
  • Getting notification of new mails in other mailboxes seems a bit haphazard. I need a good loud sound to alert me, but the built-in beep setting seems to only work when it feels like it.

It might seem a bit mad to switch from a perfectly adequate mail client to another, but mutt is free (in all senses of the word), and it uses standard mbox format mailboxes, so it's pretty easy to switch back and forth. It's been quite a fun learning experience.