Terminal Email

Gnus vs nmh

Gnus: Mail and news reader built into GNU Emacs, with back ends for IMAP, POP3, local mail folders and NNTP.
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

Gnusnmh
InterfaceRuns inside EmacsCommand-line tools and prompts
LanguageEmacs LispC
LicenseGPL 3.0 or laterBSD 3-Clause
Latest version5.13 (bundled with Emacs 31.1)1.8
LinuxNativeNative
macOSNativeNative
WindowsNativeThrough WSL
BSDNativeNative
AndroidThrough TermuxThrough Termux
IMAPYesThrough a separate tool
POP3YesYes
SMTPYesYes
JMAPNoNo
MaildirYesYes
mboxYesYes
notmuchThrough a separate toolNo
OpenPGPYesNo
S/MIMEYesNo
OAuth2 sign-invia pluginNo
ThreadsYesNo
Searchgnus-search: IMAP SEARCH, or notmuch, mu, mairix and other local indexerspick 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 accountsYesvia per-command switches or separate profiles
Offline usevia the Gnus agent or local Maildir back endsfull; messages are stored as local files
Calendarreplies to invitations with gnus-icalendarreplies to invitations with mhical
Contactsvia BBDB or EUDCaliases via MailAliases and the ali command
Vim-style keysNoNo
ConfigurationEmacs Lisp in init.el or ~/.gnus.el~/.mh_profile and mts.conf text files

Which to choose

Choose Gnus for

  • Included with every GNU Emacs install, including native Windows builds.
  • Reads IMAP directly, plus local Maildir, MH and mbox stores and NNTP newsgroups.
  • Scoring, splitting and the Gnus agent allow detailed filtering and offline reading.

Watch out for

  • The group, summary and article model takes time to learn.
  • IMAP access runs inside Emacs, so large mailboxes can make Emacs wait.
  • Configuration is Emacs Lisp spread across many variables.

Install Gnus

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 Gnus and nmh?

Gnus is a mail client that runs inside Emacs; nmh is a command-line program. Only Gnus has built-in IMAP. On Windows, Gnus runs natively and nmh runs through WSL.

Which runs on Windows, Gnus or nmh?

On Windows, Gnus runs natively. On Windows, nmh runs through WSL.

See also: Gnus alternatives, nmh alternatives.