The Mutt E-Mail Client

Probably the most often service you'll use on the Internet is e-mail. The choice of an email client, then, becomes important since you use it every day. I thought I'd share my experiences with a terrific little client called Mutt.

A Little Backgrond

In the Unix world, function is more important than form. Consequently, there are more terminal based mail readers than there are GUI based mailers. That's fine with me, but then I've gotten used to it. For a new person, you might feel a little put out.

For you GUI lovers, there are fairly decent GUI mailers such as Netscape's mailer, emxh (if you like MH style mailboxes--I prefer the mbox format), XFMail (best of the GUI readers, in my opinion), and a handful of others such as TKRat and other Tk based readers. Emacs and VM is my personal favorite mail user agent under X, however.

But a GUI often introduces lag to mail reading software. There's more overhead to the program. Once you get used to the zip of a tty based mail reader, you could get hooked. I've used VM under Emacs, Pine, Elm, Berkeley, emxh, and various other readers for a while, now, and Mutt seems to be as fast and flexible as the best of them. When you get hundreds of e-mails a day as I do (from various mailing lists I try and follow), you're willing to give up some fancy appearance features for the much-improved speed and flexibility.

Features

Mutt is the most attractive of the tty or terminal-based mail readers I've tried. It offers threaded indexes of multiple mailboxes, customizable to the Nth degree. It's color-coded, too. Instead of just one or two colors like you see in other tty mail readers, you can have various colors active in your indexes, directory browser, and mail reading pager.

The four areas of the program you'll use are the index, the pager (what you use to read your messages), the composition menu, and the file browser. Mutt is designed for the person who deals with LOTS of email, so it fascilitates viewing multiple inboxes and filing to many directory structures via the index. Since it does full threading, like you see on many news readers, you can perform operattions on whole threads and sub-threads of messages. Not only can you work with various inboxes and outboxes, but you'll also find the same operations you're used to on Pine and Elm on various ranges of messages. And, being threaded, Mutt will offer you some more.

The built-in message ``pager'' struck me as a funny term for reading mail. Basically, a pager is just a tool that let's you scroll through a text file, like more or less. You can even use alternative pagers with Mutt, if you like. You can bind your own keystrokes to any function in any of these four areas of the mail program, so you can make it act like Elm or Pine or whatever you want. The international verion of Mutt supports PGP and PGP Mime; it supports all versions of it including PGP 5.x. The pager also allows you to bind various colors (or whole functions) to parts of the message as filtered by regular expressions. You can have your ``From:'' line in red, your ``quoted attribution'' in blue, and the message signature in green, say. Whatever you want. You can also launch your web browser from URLs in the message through a utility called browse-URL, and you can use a mime.types file to launch various applications on messages or attachments based on their respective mime encoding, just as with a web browser. You can also do shell escapes and launch programs in sub-shells just like you're used to doing in other mailers.

The file browser is flexible and fast. Mutt handles mh, mbox, MMDF, and Maildir (from Qmail) mailbox formats. Additionally, it can receive mail from Sendmail, fetchmail (or other popular local delivery agents), and it has built-in support for IMAP and pop3 mail servers, so you don't have to depend on your local delivery agent if you don't want to. (I use it with Sendmail, Fetchmail, and Procmail, and it works great, however.) It handles aliases for mailing lists, folders, distribution lists, automatic message filing, and more. You can build shortcuts so you can race around and read mailboxes all over your system, if you want. If you have multiple mailboxes, each in different formats and display properties, which comes in handy. You can create a MH type mailbox with Emacs or Emxh one day, and read it with Mutt the next, without chaning mailers. It's quite flexible.

Comparisons

I would say the only challenge associated with Mutt is its complexity. Configuration is done through an extensive .muttrc file in your home directory. There's no handy configuration tool or menuing system as with Elm and Pine, say. While sample configuration examples come with the source package, it will take some time to learn the syntax and all the many command and configuration options. At least all the documentation is well done, which is helpful. Additionally, there are many add-ins and patches available from the hacker community at various ftp sites. You can start by looking for resources at the Mutt homepage: http://www.mutt.org.

It's as fast Pine or Elm (I think it's faster), and it's as pretty as a well-set up Gnus or VM with Emacs set up. I think it's faster than either XFMail or emxh as well as more configurable. And even commercial mailers like Applix Mail or Netscape don't have nearly as many features as Mutt.

In short, Mutt combines all the best features of fast and flexible terminal based mailers with some of the aesthetic features of GUI mailers, yet with none of the inflexibility, bloat and lag that weigh them down.



David S. Jackson
Created: Sun Nov 29 1998 17:27:12 EST