Khairul Imran Full-stack developer Malaysia MYT
03 · Infra

Self-hosted mail infrastructure

Production transactional-mail infrastructure, self-hosted and operated end to end — from MTA daemons and DNS auth records to deliverability monitoring.

Role
Design, deployment & operations
Years
2025 — now
Stack
Postfix · ZoneMTA · Docker · DKIM/SPF/DMARC · Linux

Email is the layer of the stack most developers rent, because running it yourself means volunteering for DNS records, IP reputation, TLS on port 587, and debugging why one receiving host greylists you at 3am. I run it anyway — a production mail platform for transactional sending, plus the self-hosted MTA that carries my own applications’ mail.

What “running mail” actually means

Why it’s worth it

Because owning the failure modes changes how you build on top — including the Mailniaga Gateway console, where relay management and delivery analytics (on ClickHouse) sit on top of this same infrastructure. Application code that sends mail through infrastructure you operate is written more carefully: idempotent sends, meaningful bounce handling, one shared transactional sender instead of a mailbox per app. And when something breaks, the debugging surface is yours all the way down.