Running in production · Edition No. 15 · 9 Sep 2026

postalserver/postal

Your own mail-sending server, with DKIM signing, bounce handling and a searchable log of every message.

← Running in productionRead the whole edition →

16.8k stars · MIT · v3.3.7 (2026-06-03), read from /releases/latest

Your own mail-sending server, with DKIM signing, bounce handling and a searchable log of every message.

Repo detailsthe review · specs · pros & cons · install

What it is

Postal is a complete mail server for outgoing mail. It has a web interface, an HTTP interface and an SMTP interface, and it tracks what happened to every message.

Why it matters

Listmonk (Edition 2 #1), Mautic (Edition 10 #6) and Dittofeed (Edition 14 #8) all write the email. None of them deliver it. Every one of them asks you for a sending account. That is the same missing piece three times over. Owning it removes a bill that grows as your list grows, and it gives you the delivery log you need on the day a group of Russian addresses stops receiving anything.

Stars16.8k
LicenceMIT
Latestv3.3.7 (2026-06-03), read from /releases/latest
Good
  • MIT, and the whole product is in the repository. Nothing is held back.
  • It does the real delivery work: message signing, bounce processing, suppression lists, and a searchable log of every message.
  • It accepts mail over both SMTP and HTTP, so any of the tools above can hand it their messages.
Watch for
  • The install is the easy half. Getting mail accepted is the hard half. A brand new sending address has no reputation, so you must start with small volumes and build up, or you land in spam folders.
  • Hosting companies block outgoing port 25 on new accounts, and Hetzner is one of them. You have to ask them to open it and they can say no. Check this before you spend the afternoon.
  • MariaDB plus a message queue plus the application, about 2 GB of memory. And when mail stops flowing at midnight, it is your problem, not a supplier's.
Install
sudo apt install -y docker.io docker-compose-plugin git
sudo git clone https://github.com/postalserver/install /opt/postal/install
sudo ln -s /opt/postal/install/bin/postal /usr/bin/postal
sudo postal bootstrap postal.yourdomain.com
sudo postal initialize
sudo postal make-user
sudo postal start
Screenshots
postalserver/postal: GitHub preview cardpostalserver/postal: Screenshot 1

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.