The starting point
Paid email services charge per email and per contact, and email from a new server without the right setup easily lands in spam. The academy lost customers who never saw the email saying their access was open.
What I built
- Postal in Docker. Installed on a server shared with about 25 other projects without touching any of them.
- IPv4 only. The server's IPv6 had a generic reverse DNS that Gmail rejects, so all mail goes out over IPv4.
- Authentication. SPF, DKIM, return path and DMARC for every domain, and encrypted SMTP.
- Separate domains. One domain for receipts and system emails, one for newsletters, so a newsletter never hurts receipt delivery.
- Listmonk for newsletters. Campaigns and lists on the same server.
- App integration. The software team's app now sends login and password reset emails through Postal.
The result
The academy's deliverability test went from 6.1 to 10 out of 10, and 642 automated checks of letters and prices found zero failures. One newsletter reached the whole list of 1,647 contacts from the self hosted server. For the software team, the test email was accepted by Gmail right away.
Tools and tech stack
- Postal
- Listmonk
- Docker
- MariaDB
- PostgreSQL
- SPF
- DKIM
- DMARC
- nodemailer
The client is anonymised. The numbers come from the project's own reports and measurements.







