Repository navigation
Releases: rossedman/postmarkd
Releases · rossedman/postmarkd
Release list
v0.1.0
The first release: a small daemon that lets anything on a host or in a pod
send mail through Postmark.
Sending
- Postmark-compatible HTTP API:
/email,/email/batch,
/email/withTemplateand/email/batchWithTemplates. Existing Postmark
SDKs work by changing their base URL. - SMTP server (
POSTMARKD_SMTP_LISTEN) that converts MIME mail, including
attachments, inline images and Postmark'sX-PM-*headers. sendmailcompatibility: invoke the binary assendmailand cron,
mail, PHPmail()and friends deliver through Postmark.postmarkd sendfor scripts: bodies from stdin or files, attachments,
templates, streams, tags and metadata.- Default
FromandMessageStream, plus per-request stream selection
(?stream=,X-Postmarkd-Stream).
Reliability and scale
- Validation before Postmark sees a message; original bytes are forwarded
untouched. - Pooled upstream connections, a concurrency limit, and retries only when
Postmark cannot have accepted the message (no duplicate mail). - Optional async mode with a bounded in-memory queue, back-pressure and
graceful drain on shutdown.
Operations
- TCP and unix socket listeners (several at once), systemd socket
activation (including SMTP on port 25 viapostmarkd-smtp.socket),
sd_notifyreadiness and watchdog, and a hardened unit. - Optional client token authentication; the Postmark token can be loaded as
a systemd credential. - Prometheus metrics,
/healthzand/readyz;postmarkd healthcheck. postmarkd check-domainchecks DKIM, Return-Path (SPF alignment) and
DMARC records.- Blackhole mode (
POSTMARKD_BLACKHOLE) for tests, with captured mail at
/blackhole/messages.
Distribution
- Linux binaries,
.deband.rpmpackages for amd64 and arm64, and a
multi-arch distroless container image atghcr.io/rossedman/postmarkd. - Docker Compose, Kubernetes sidecar and GitHub Actions examples.
- Documentation site at https://rossedman.io/postmarkd/.
- Benchmarks for every component, run in CI with a regression gate.