Andrew Mercer
on this page

Mail Clients

These guides cover the Mail User Agent (MUA) side of email: the programs that compose, send and read mail. In the terms used in Email Architecture, they sit at both ends of the pipeline. They submit mail to an MTA over SMTP, and they read it back over IMAP (or straight from a local mailbox file).

All of them are terminal or command-line tools. That makes them good for servers, for scripting, and for anyone who wants their mail setup to be plain text under version control.

  1. The mail Command (mailx, s-nail, GNU Mailutils) covers sending mail and attachments from scripts and cron. It explains the three incompatible mail implementations, sendmail -t, and testing with swaks.
  2. Mutt covers configuration from scratch: IMAP/SMTP, Gmail, multiple accounts, keeping passwords out of the muttrc, caching, and debugging.
  3. Mutt and GPG covers signing and encrypting with GPGME (modern) or the classic gpg.rc command set, plus gpg-agent and pinentry.
  4. NeoMutt explains what the fork adds (sidebar, notmuch, Lua and more), how it differs from Mutt, and how to migrate.
  5. Proton Mail Bridge covers running Bridge headless or on a desktop, wiring it into Mutt/NeoMutt, and backing up a Proton mailbox.

Which client should I use?

Need Use
Send an alert or a file from a script or cron job mail/s-nail, or sendmail -t directly
Test an SMTP server (AUTH, TLS, specific envelope) swaks
Read and write mail interactively in a terminal Mutt or NeoMutt
Full-text search across a large local archive NeoMutt + notmuch
Use a Proton Mail account from any IMAP client Proton Mail Bridge, plus the client of your choice
in this section
* mutt and gpg: signing and encrypting mail
* mutt: a complete configuration guide
* neomutt: the modernized mutt fork
* proton mail bridge with mutt and neomutt
* the mail command: mailx, s-nail and gnu mailutils