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 a GNU 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)
(server-edit)

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.

If you're running XEmacs rather than GNU Emacs, these directions
change slightly. In this case you waant to set EDITOR
to gnuclient. In recent versions, your init file
will live at ~/.xemacs/init.el rather than
~/.emacs.

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/.

The most popular mailreader for emacs is probably GNUS, distributed
with GNU Emacs. It is a client for USENET news as well as mail.

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...

mush

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

mh

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.