Terminal Email

Pop

TUIMail tool

Send-only email tool from Charm with a terminal form for composing and a command-line mode for scripts.

Pop composes and sends email from the terminal, either through a full-screen form or from flags and standard input. It sends through the Resend API or any SMTP server, renders the Markdown body to HTML unless plain text is requested, and can attach files. It cannot read or fetch mail, so it is used next to a mail client or in scripts and pipelines. It is configured entirely with environment variables or flags.

Type
Mail tool
Interface
Full-screen terminal interface
Systems
Runs on Linux, macOS, Windows and BSD. Not available for Android.
Language
Go
License
MIT
Latest version
0.5.0
Maintained
Yes
Website
github.com
Source
github.com/charmbracelet/pop
Documentation
github.com

Install

SystemSupportInstall
LinuxNative
Homebrewbrew install pop
AURyay -S charm-pop-bin
Nixnix-env -iA nixpkgs.pop
gogo install github.com/charmbracelet/pop@latest
macOSNative
Homebrewbrew install pop
gogo install github.com/charmbracelet/pop@latest
WindowsNative
wingetwinget install charmbracelet.pop
gogo install github.com/charmbracelet/pop@latest
BSDNative
gogo install github.com/charmbracelet/pop@latest

No ports package; release binaries are published for FreeBSD, OpenBSD and NetBSD.

AndroidNot supported

No Termux package.

Protocols and features

Protocols
ProtocolPop
IMAPNo
POP3No
SMTPYes
JMAPNo
MaildirNo
mboxNo
notmuchNo
Features
FeaturePop
OpenPGPNo
S/MIMENo
OAuth2 sign-inNo
ThreadsNo
SearchNo
HTML mailsends the Markdown body rendered as HTML
MouseNo
Multiple accountsNo
Offline useNo
CalendarNo
ContactsNo
Vim-style keysNo
Configurationenvironment variables or command-line flags

Pros and cons

Pros

  • Works both as an interactive form and as a scriptable command reading the body from standard input.
  • Sends through any SMTP server with SSL/TLS or STARTTLS, or through the Resend API.
  • Single Go binary with packages for Homebrew, winget, Nix and the AUR.

Cons

  • Send-only: cannot read, fetch or search mail.
  • One sending account at a time, set through environment variables.
  • No OpenPGP or S/MIME signing.

Use Pop with Forward Email

How Pop fits with a Forward Email mailbox. Replace you@example.com with your alias and the password command with your own. The same settings work with any provider once the server names change.

~/.bashrc (or your shell profile)
# ~/.bashrc or ~/.zshrc
export POP_SMTP_HOST=smtp.forwardemail.net
export POP_SMTP_PORT=465
export POP_SMTP_ENCRYPTION=ssl        # or port 587 with: starttls
export POP_SMTP_USERNAME=you@example.com
export POP_SMTP_PASSWORD="$(pass show email/forwardemail)"
export POP_FROM=you@example.com

# Interactive: pop
# Scripted:    pop < message.md --to friend@example.org --subject "Hello"
ProtocolServerPortSecurity
IMAPimap.forwardemail.net993SSL/TLS
POP3pop3.forwardemail.net995SSL/TLS
SMTPsmtp.forwardemail.net465SSL/TLS
SMTPsmtp.forwardemail.net587STARTTLS

Username: your full alias address, such as you@example.com. Password: the one shown by Generate Password next to the alias in your Forward Email account. Folders: INBOX, Drafts, Sent Mail, Trash, Spam and Archive.

Prefer no config at all? Forward Email's terminal app signs in with your account and has mail, calendar and contacts in one program.

Questions

Does Pop work on Windows?

Yes, it runs natively on Windows.

Does Pop support IMAP?

No. Pop does not use IMAP.

Is Pop open source?

Yes, under the MIT.

How do I use Pop with Forward Email?

Use the config in the Forward Email section on this page, saved as ~/.bashrc (or your shell profile), and replace the address and password with your own.

Sources