2. Mail User Agents

This section contains information related to user agents, which means the software the user sees and uses. This software relies on the transport agents described in the Mail Administrator's HOWTO (which also include user-agent configuration and troubleshooting tips for administrators).

2.1. Setting your mail editor

Mail user agents call out to some editor to assist composition of mail. Which editor is the default varies. Most of them respect a convention going back to Unix's early days; the contents of the environment variable VISUAL, if it exists, is taken as the name of your preferred editor. If VISUAL is not set, the variable EDITOR is checked.

Popular values for EDITOR include vi and emacs. But if you are, like me, the sort who always has an Emacs running, the most useful way to set EDITOR is to the value emacsclient. Use this with the following lines in your .emacs file:

(autoload 'server-edit "server" nil t)

The emacsclient program, when it runs, tries to establish communication with an Emacs instance you already have running and hand the mail message temporary file to that Emacs to be edited. The effect of this will be that when your mailer calls out for an editor, a mail composition window pops open inside your Emacs.

When you are ready to hand the file back to the mailer for sending, type C-x #. The mail buffer will leave your display and the emacsclient instance your mailer called will return, handing control back to the mailer.

It is possible to have more than one emacsclient instance open at once without confusing Emacs. However, calling up another Emacs while an emacsclient session is running can confuse emacsclient enough that it won't be able to find either instance afterwards. If this happens, shut down all your Emacs instances and restart just one.

2.2. mutt

This is what I use and recommend. It is descended from elm and has similar commands by default, but is much more powerful and configurable. It can be a POP3 or IMAP client, and includes excellent support for MIME and PGP. There is a Mutt home page on the web.

Mutt respects the EDITOR/VISUAL convention.

2.3. elm

Elm was the first modern, screen-oriented Unix mailer, but has been stagnant for years now and is being displaced by Mutt. Some versions of elm have POP3 support built in. For more information, see the elm sources and installation instructions in the Metalab mail user agents directory. Here are a few points that occasionally trip people up:

No, stock elm is not PGP-aware. There are PGP support patches, but Mutt's PGP support is superior. If you want to use PGP, I recommend Mutt.

Elm respects the EDITOR/VISUAL convention.

2.4. pine

Pine is a user agent designed for novices; it includes news-reading capability and built-in support for the IMAP remote-mail protocol. A lot of people swear by it for new users. I find its impoverished command set, limited configurability and native editor hard to take. It has excellent built-in IMAP support, however. If you want to check it out, the distribution is available at http://www.washington.edu/pine.

Pine respects the EDITOR/VISUAL convention.

2.5. Netscape

The Netscape browser has POP3 and IMAP remote-mail capability built into it, so it can be used as a mail user agent. I don't recommend this; it doesn't specialize in being an MUA, and therefore does not offer many of the services that real MUAs do (such as aliases and PGP handling). It does, however, support LDAP and SSL.

Netscape supplies its own mini-editor, the same one used throughout the browser (e.g. for text fields in forms).

2.6. Emacs rmail/smail and vm.

Emacs has a mode called smail that can send mail, and another called rmail that can read mail. The smail mode can be quite useful, as you get to compose mail inside a full Emacs environment (but see also the discussion of emacsclient elsewhere in this document).

The rmail mode, on the other hand, is not recommended. Every time you run it, it converts your inbox to BABYL format; ordinary mail tools will choke on that. (If this happens to you, do M-x unrmail from the Emacs command line.)

There is a mailreader for emacs called `vm' that writes and reads standard V7 mailboxes. It is not distributed with GNU Emacs, but you can find its home page at http://www.wonderworks.com/vm/.

Emacs smail/rmail/vm do not respect the EDITOR/VISUAL convention. Instead, you use the Emacs they're embedded in.

2.7. BSD mail

If you simply type `mail' to the shell on a Linux or any other modern Unix, you will invoke some variant of the BSD Mail program. It has a line-oriented interface originally designed for use on TTYs. It is, at this point, only of historical interest.

BSD Mail invented the EDITOR/VISUAL convention.

2.8. Other user agents

The following also are known to run under Linux. Consult `archie' to find them...


mail user's shell, very powerful for filtering andbatch processing


mail handler, yet another mail user agent

I don't know enough about mh or mush to describe them in detail. They both have rather complex interfaces and are designed for sophisticated mail users.