Terminal Email

nmh vs Notmuch Emacs interface

nmh: The MH message handling system: separate shell commands to read, file, search and send mail stored one file per message.
Notmuch Emacs interface: Emacs front end for notmuch that reads, searches, tags and composes mail from a local Maildir.

Differences

Side by side

nmhNotmuch Emacs interface
InterfaceCommand-line tools and promptsRuns inside Emacs
LanguageCEmacs Lisp
LicenseBSD 3-ClauseGPL 3.0 or later
Latest version1.80.40
LinuxNativeNative
macOSNativeNative
WindowsThrough WSLThrough WSL
BSDNativeNative
AndroidThrough TermuxThrough Termux
IMAPThrough a separate toolThrough a separate tool
POP3YesThrough a separate tool
SMTPYesYes
JMAPNoNo
MaildirYesYes
mboxYesNo
notmuchNoYes
OpenPGPNoYes
S/MIMENoYes
OAuth2 sign-inNovia script
ThreadsNoYes
Searchpick command matches header fields and message textnotmuch Xapian full-text search with tags
HTML mailvia mhshow with an external converter such as w3mbuilt-in, rendered with the Emacs shr library
MouseNoYes
Multiple accountsvia per-command switches or separate profilesYes
Offline usefull; messages are stored as local filesfull; reads a local Maildir synced by mbsync or OfflineIMAP
Calendarreplies to invitations with mhicalshows text/calendar parts; no invitation replies
Contactsaliases via MailAliases and the ali commandaddress completion from the notmuch index
Vim-style keysNoNo
Configuration~/.mh_profile and mts.conf text filesEmacs Lisp in init.el plus the notmuch config file

Which to choose

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

Choose Notmuch Emacs interface for

  • Tag-based organization with fast full-text search over all local mail.
  • Shows a whole thread in a single buffer.
  • Handles PGP/MIME and S/MIME signatures and decryption through notmuch.

Watch out for

  • No built-in IMAP; needs mbsync or a similar sync tool.
  • Custom tags stay in the local index; only standard flags such as unread and replied reach the IMAP server.
  • Requires Emacs and some Emacs Lisp to configure.

Install Notmuch Emacs interface

Questions

What is the difference between nmh and Notmuch Emacs interface?

nmh is a command-line program; Notmuch Emacs interface is a mail client that runs inside Emacs. Only nmh has built-in POP3 and mbox. Only Notmuch Emacs interface has built-in notmuch.

Which runs on Windows, nmh or Notmuch Emacs interface?

On Windows, nmh runs through WSL. On Windows, Notmuch Emacs interface runs through WSL.

See also: nmh alternatives, Notmuch Emacs interface alternatives.