← Projects

Project · Go · MIT

postmarkd active

A small daemon that runs next to your apps and delivers their mail through Postmark, whether they send over HTTP, SMTP, sendmail or a CLI.

Sending mail should be one line. postmarkd runs as a systemd service or a container sidecar, holds the Postmark token in one place, fills in defaults like the From address, and sends in parallel with safe retries. Apps hand it mail however they already can:

shell
echo "The nightly backup finished." | postmarkd send -to ops@example.com -subject "Backup OK"
  • Anything that uses sendmail. Symlink it as /usr/sbin/sendmail and cron, mail, PHP mail() and git send through Postmark with no other change.
  • Apps that speak SMTP. Point them at localhost:2525. No credentials, no TLS.
  • A Postmark-compatible HTTP API, so apps with a Postmark SDK only change the base URL.
  • A black hole for tests. POSTMARKD_BLACKHOLE=true answers like Postmark, sends nothing, and lets tests read back what was “sent”. No account needed.
  • postmarkd check-domain checks your DKIM, Return-Path and DMARC records from the command line.
  • systemd native and container ready: socket activation, watchdog, Prometheus metrics, a 16 MB non-root image, and no dependencies outside the standard library.

Try it without a Postmark account:

shell
docker run -d -p 8025:8025 -e POSTMARKD_BLACKHOLE=true ghcr.io/rossedman/postmarkd:0.1
curl localhost:8025/email -d '{"To":"you@example.com","Subject":"Hi","TextBody":"Hello"}'

Packages for Debian, Ubuntu and Fedora are on the releases page, and the docs cover deployment, the API and benchmarks.