Created: Tue Oct 1 00:00:00 MET 1996
Last update: Wed Jun 17 20:20:20 CEST 1998
MUTT vs ELM - a comparison
Or: Why MUTT is better than ELM
This comparison was made for mutt-0.67 [released 970321] and
ELM2.5PL25. Since then, only a few things were added, mostly features
that elm never had at all. So I didn't change much of it. As a matter
of fact, I didn't update this page within the first half of 1998. Now
that there is the newsgroup comp.mail.mutt the traffic on
comp.mail.elm seems to be about reuqests for special features patches
and the usual answers about bugs and patches. 
When I last updated this page, the latest version of mutt was
"mutt-0.88". For recent changes please take a look at the mutt history
which has links to the latest ChangeLogs describing new and changed
To sum it up, there "feature score" of this comparison is:
If you don't want to read the whole document then you might want to
see the summary at the end of this document right away.
Or jump directly to these sections:
Commands | Display | Configuration | Mail Composition | Viewing |
Pager | Folder Management | Miscellaneous
If you find any bugs or if you just disagree with some of the
statements in this list then PLEASE let me know! Send me Email: Sven
Features that MUTT has and ELM does not - probably even with the next
version (if there ever will be one at all).
MUTT++: Commands for POP
MUTT features commands to get and send mails via the Post
Office Protocol (POP). The commands are quite basic, but
someone is working on a menu to display remote folders and to
allow getting tagged messages.
ELM does not have support for POP. [But you can always use an
external POP client, of course.]
MUTT++: Command jump-new / jump-unread
MUTT can automatically jump to "undone" mail after opening a
folder - so you can start off with either the first "new" or
the first "unread" mail.
ELM only jumps to the first *New* mail and only after opening a
MUTT+: Command reply - keeps comment in Reply-To
MUTT keeps the comment field given with a Reply-To line.
ELM drops the comment field with replies. BUG!
MUTT++: Command quit - Quit command can be aborted
MUTT allows to abort the quit command. And you can configure
whether Mutt should give a prompt with it.
ELM does not allow to abort the quit command - you have to
answer the questions (if they are not auto-answered) and ELM
*will* quit after that. This is especially annoying when you
accidentally hit the 'q' key.
MUTT++: Command - prompt for foldername - Filename expansion
MUTT expands filenames (and directory names) in filename
prompts (eg when changing the folder or chosing a file for
attachment) when you press TAB; for ambiguous completion it
will complete the unambiguous part. It does not show a list of
matching filename when you use '*' in the filename, though.
This should improve much with a builtin file selector.
ELM allows the use of the wildchar '*' in filenames and will
print a list of matching filenames. You cannot select an item
from the resulting list, though. (The '*' is the only wildchar
- you cannot enter a regular expression.)
MUTT++: Command - sort method "threading"
MUTT can sort the mails by its dependencies as given by the
References: line. and also propagates them.
ELM does not do threading and does not propagate the
References: line (but ELM2.5 will eventually).
MUTT++: Command - URL extraction menu
MUTT has a command that takes all URLs from a mail and presents
you with a menu to select an URL from; the URL is then sent to
your web browser for opening. The kind of URLs to extract can
be customized by a regular expression (variable "url_regexpr");
the default value extracts http and ftp addresses, including
ELM does not have such a command. (But I am sure that it could
be done by piping the mail to a script.)
MUTT++: Command - mails - Detection of aborted edit sessions
MUTT detects that the temporary file has not changed after the
editor exited and thus will automatically abort the mail
command (mail/reply/forward). Configurable via the variable
ELM will always present the send-menu - even if the letter is
empty. There is not warning, either.
MUTT++: Command - Reply and forward of selected mails
MUTT allows to "reply" and "forward" of all selected (tagged)
ELM offers "reply" and "forward" only for the current mail.
MUTT++: Command "enter-command" - internal command line
MUTT has a command line that allow to change the value of a
variable. Thus you can change values without having to leave
ELM does not have a command line. You can only change the
values that are given in the options menu. Changing an internal
value that is not in the options menu required you to exit ELM,
change *the* setup file (you cannot specify another) and start
ELM again on the same folder. This can take a lot of time -
especially on large folders.
MUTT++: Command "flag-message" ('F')
MUTT allows to flag messages permanently across invocations.
Thus you can give mails an extra status, eg "todo".
ELM does not have a command to give an extra mark to mails.
Once a mail is "read" it is kept that way. This seems like a
good idea but sometimes is a pain in the you-know.
MUTT++: Command "search" - search string editing
MUTT allows to edit the search string - ELM does not. MUTT also
gives error messages for invalid regular expressions (eg for no
closed parentheses and brackets). You can also recall previous
search strings and search backward.
ELM does not allow search string editing - unless you add
something like GNU's "readline library".
MUTT++: Display - Tree of nested attachments
MUTT displays a dependency tree of nested attachments.
ELM does not display attachments at all.
MUTT++: Display - Main Menu - always shows the status flags in all
MUTT shows the mail status not only for the mailbox, but for
all folders. Not only does it show the stati New, Old,
to-Delete and tagged (standard), but also for replied mails
(r), mails containing a PGP key (K), PGP encrypted (P) or
signed (S) data, and multipart mails (M), and a '!' for
"important" mails which you can set yourself and which gets
preserved on folder updates.
ELM shows the mail status only for the mailbox.
MUTT++: Display - Send Menu - always show the most important header
MUTT always shows the header lines To:, Cc:, Bcc:, and Subject:
for the outbound letter - no need to switch to a header menu.
ELM does not display the headers of the outbound mail. To see
or change these header lines you need to switch from the send
menu to the header menu first. And you must switch back to the
send menu when you are done.
MUTT++: Display - Highly configurable
MUTT allows configuration of the display of the index menu to
suit users' needs.
ELM does not allow you to change the display of the index.
MUTT++: Display - Color support
MUTT allows assigning colors to parts of the mail. (using
suitable curses library).
ELM only has support for highlighting. ;-)
MUTT++: Configuration - list of inboxes, check for new mail
MUTT allows to define a list of "inboxes", ie folders which
receive new mail automatically, eg from mailing lists. This
list [variable "mailboxes"] is checked for new mail when you
use the "change_folder" command and the first folder with new
mail is automatically presented.
ELM checks for new mail only if the current folder is the
mailbox, ie the folder pointed at with MAIL.
MUTT++: Configuration - define default answers
MUTT allows to define a default answer and prompt you for it.
ELM only allows to autoanswer a question but you cannot set
have ELM prompt you with a different default answer.
MUTT++: Configuration - header weeding control
MUTT allows to specify a list of header lines you want to see
with the mails in your pager. You specify to "ignore *" (all
lines) and then which lines to "unignore". Thus you will always
get to see the lines you really
read more »