Terminal Email

mu4e vs nmh

mu4e: Email client that runs inside GNU Emacs, built on the mu Maildir indexer and search tool.
nmh: The MH message handling system: separate shell commands to read, file, search and send mail stored one file per message.

Differences

Side by side

mu4enmh
InterfaceRuns inside EmacsCommand-line tools and prompts
LanguageEmacs Lisp (mu4e), C++ (mu)C
LicenseGPL 3.0 or laterBSD 3-Clause
Latest version1.14.31.8
LinuxNativeNative
macOSNativeNative
WindowsThrough WSLThrough WSL
BSDNativeNative
AndroidThrough TermuxThrough Termux
IMAPThrough a separate toolThrough a separate tool
POP3Through a separate toolYes
SMTPYesYes
JMAPNoNo
MaildirYesYes
mboxNoYes
notmuchNoNo
OpenPGPYesNo
S/MIMEvia Emacs MMLNo
OAuth2 sign-invia scriptNo
ThreadsYesNo
SearchXapian full-text index with mu query syntaxpick command matches header fields and message text
HTML mailbuilt-in, rendered with the Emacs shr libraryvia mhshow with an external converter such as w3m
MouseYesNo
Multiple accountsvia contextsvia per-command switches or separate profiles
Offline usefull; reads a local Maildir synced by mbsync or OfflineIMAPfull; messages are stored as local files
Calendarreplies to invitations with mu4e-icalendarreplies to invitations with mhical
Contactsaddress completion from indexed mailaliases via MailAliases and the ali command
Vim-style keysNoNo
ConfigurationEmacs Lisp in init.el~/.mh_profile and mts.conf text files

Which to choose

Choose mu4e for

  • Full-text search over all local mail through mu's Xapian index.
  • Works offline, since all mail lives in a local Maildir.
  • Uses Emacs message mode, so PGP/MIME, S/MIME and Org mode links are available.

Watch out for

  • No built-in IMAP; needs mbsync or a similar sync tool, so setup spans several config files.
  • Requires Emacs and some Emacs Lisp to configure.
  • No native Windows build, and Arch packages it only in the AUR.

Install mu4e

Choose nmh for

  • Every action is a shell command, so mail handling is easy to script.
  • One file per message lets grep, find and other Unix tools work on mail.
  • Built-in POP3 and SMTP with TLS and SASL; reads mbox and Maildir drops.

Watch out for

  • No IMAP; IMAP mail must be synced to a Maildir first and then incorporated.
  • No built-in OpenPGP or S/MIME, and no thread view.
  • SMTP authentication needs nmh built with Cyrus SASL and its PLAIN or LOGIN plugin.

Install nmh

Questions

What is the difference between mu4e and nmh?

mu4e is a mail client that runs inside Emacs; nmh is a command-line program. Only nmh has built-in POP3 and mbox. mu4e has mouse support; nmh does not.

Which runs on Windows, mu4e or nmh?

On Windows, mu4e runs through WSL. On Windows, nmh runs through WSL.

See also: mu4e alternatives, nmh alternatives.