aerc: a pretty good email client

Pronounced 'ark', this programme lets you send email from the terminal.

I wrestled with neomutt (an awful CLI email client) to send emails in the terminal, and found aerc a comparative breath of fresh air.

aerc begins with sensible defaults, and a wizard to help you set up your email quickly. Just tell it your email account, a password-command (or just give it your password), then an IMAP port (you might need to look it up on your email provider's site, but aerc will probably guess correctly). aerc then writes the config file for you.

Configs

You can find default configs in /usr/share/aerc/ (why not /usr/share/docs/aerc/ like everything else?).

 1├──  stylesets
 2│   ├──  blue
 3│   ├──  default
 4│   ├──  dracula
 5│   ├──  monochrome
 6│   ├──  nord
 7│   ├──  pink
 8│   └──  solarized
 9├──  templates
10│   ├──  forward_as_body
11│   ├──  new_message
12│   └──  quoted_reply
13├──  accounts.conf
14├──  aerc.conf
15└──  binds.conf

The default templates let you view html emails (who thought that emails should also be broken web pages? Why did we all listen?). The default sent emails, however, go out in plain text (as the Gods of Unix intended).

Less is More

It's great having an email client that sends email, and very little else.

  • I track contacts with khard.1
  • isync lets me download emails, so I can read emails while offline (I don't know how to queue them to send later without an abysmal faff, so I just save to drafts and send later manually with the :recall command).
  • I translate emails from Serbian to English with trans-cli.2
  • Emails are composed in your $EDITOR, so everyone uses their favourite.

isync is particularly useful, as I can define rules to move, store, or delete emails without having to open a browser and piss about with a new interface.


  1. Add this line to aerc.conf: address-book-cmd=khard email --remove-first-line --parsable %s ↩︎

  2. For translation, add something like this line in binds.conf: tr = :pipe -s trans -b sr:en | $PAGER <Enter> ↩︎