transactional_email
Postmark alternatives: the case for not self-hosting
This page argues against self-hosting, and that is deliberate. Transactional email is fundamentally different from every other tool on this site. When your self-hosted analytics platform goes down, you lose visibility until you fix it. When your self-hosted email server's IP reputation degrades, password resets and order confirmations land in spam — and your customers assume your business is broken. The cost of that failure is not downtime; it is lost revenue.
Comparison table (live data)
GitHub metrics snapshot: 2026-09-08
| Project | Stars | Activity |
|---|---|---|
| Postal | 16.8k | This week |
| Stalwart Mail Server | 14.6k | This week |
| Maddy Mail Server | 6.1k | This week |
Most pages on this site follow the same pattern: a SaaS charges per seat, self-hosting removes the subscription, and the math favors switching. Transactional email breaks that pattern. Postmark charges $1,200/year for 100K emails per month. Amazon SES Essentials charges $192/year for the same volume. Self-hosting — once you account for IP warm-up, deliverability monitoring, and DevOps time — costs approximately $7,680/year. The cheapest option is still a SaaS, and this page explains why.
All pricing verified 2026-08-11 from vendor sources. DevOps time costs use a conservative $50/hour rate (roughly a $100,000/year salary) and assume 12 hours per month of email-specific work.
Quick comparison: 100K emails per month
| Service | Annual Cost | IP Reputation | Deliverability Support | Bounce/Complaint Handling |
|---|---|---|---|---|
| Postmark | $1,200 | Pre-warmed dedicated pool | Included (human support) | Automatic webhooks + dashboard |
| SES Essentials | $192 | Shared pool (no dedicated IP) | None (AWS docs only) | Manual via SNS topics |
| Mailgun Foundation | $420 | Shared (upgradable to dedicated) | Email support on paid plans | Webhooks + API |
| Self-hosted (Postal/Stalwart) | $7,680 | Zero (requires 6-week warm-up) | You are the support | You configure SpamAssassin/rspamd |
Self-hosted cost includes $480 VPS (Vultr 8GB) + $7,200 DevOps time (12h/month × $50/h × 12 months). Does not include relay fees, which most VPS deployments still need because port 25 is blocked.
Why Postmark costs $1,200/year
Postmark is not charging $1,200/year to send bytes over SMTP. You are paying for:
- Pre-warmed IP pools with established sender reputation. Your first email lands in the inbox on day one, not after 6–8 weeks of warm-up.
- Deliverability monitoring across all major ISPs (Gmail, Outlook, Yahoo, Apple). You see bounce rates, spam complaints, and open rates in real time.
- Automatic bounce handling. Hard bounces are removed from your sending list automatically. Spam complaints trigger webhooks so your application can unsubscribe the user.
- Human support when you get blacklisted. Postmark's team will help you file delisting requests and diagnose deliverability issues. When SES reputation degrades, AWS support tells you to read the documentation.
For a business where transactional email is mission-critical (password resets, order confirmations, two-factor auth codes), $1,008/year buys peace of mind that these emails land reliably.
Amazon SES: the obvious alternative
SES Essentials charges $0.16 per 1,000 emails with no base fee or minimum. 100K emails per month = $192/year. That is $1,008/year less than Postmark for functionally identical underlying infrastructure — AWS's delivery network powers Postmark too.
What you give up:
- No dedicated support. If your deliverability drops, you diagnose it yourself using SES's reputation dashboard and CloudWatch metrics.
- No dedicated IP by default. Essentials uses a shared IP pool. If you need a dedicated IP (typically for very high volume or strict sender reputation requirements), you pay $24.95/month and upgrade to SES Pro.
- More configuration. Bounce and complaint notifications come through SNS topics that you wire up yourself. Postmark does this out of the box.
For a technical team comfortable with AWS, this is a clear win. For a non-technical team or one without spare DevOps capacity, Postmark's $1,008/year premium may be worth paying.
Why self-hosting email is different
This site usually argues for self-hosting. Transactional email is the exception, and the reason is not cost — it is risk asymmetry.
When you self-host analytics, CRM, or a form builder, the failure mode is predictable: the service goes down, you lose access, you fix it. The cost is downtime and lost visibility.
When you self-host email, the failure mode is silent and unrecoverable: your IP reputation degrades, emails land in spam, and your customers never see password resets or order confirmations. They assume your service is broken. The cost is not downtime — it is lost revenue, support tickets, and reputation damage.
The hidden costs of self-hosting SMTP
A Vultr 8GB server costs $480/year. That is the easy part. The hard part is:
- IP warm-up: 6 weeks minimum. ISPs do not trust new IPs. You start at 50 emails per day and double weekly until you reach full volume. Postmark and SendGrid publish public warm-up schedules; the industry-standard progression takes 6–10 weeks. During this period, you are either throttled or still paying Postmark/SES to send at full volume (which defeats the purpose).
- DKIM/SPF/DMARC configuration. Get any of these wrong and your emails are silently rejected or downgraded to spam. SPF is a single TXT record; DMARC requires monitoring aggregate and forensic reports; DKIM involves rotating keys and ensuring every sending server signs correctly.
- Feedback loop subscriptions. Gmail, Yahoo, and Outlook each have separate processes for subscribing to spam complaint notifications. Miss one and you keep sending to users who marked you as spam, which degrades your reputation further.
- Bounce classification and list management. Hard bounces (mailbox does not exist) must be removed immediately. Soft bounces (mailbox full, temporary outage) should be retried. Block bounces (recipient's server explicitly rejected you) need investigation. Each type requires different handling, and getting it wrong means either annoying users or tanking your sender score.
- Deliverability monitoring. You need seed lists (test accounts at Gmail/Outlook/Yahoo) to measure inbox placement, bounce rate tracking across ISPs, and alerting when reputation drops. Postmark gives you a dashboard for this. SES gives you CloudWatch metrics. Self-hosting means building it yourself.
- Blacklist monitoring and delisting. Spamhaus, SpamCop, SORBS, and dozens of other RBLs can blacklist your IP. Some delist automatically after 24 hours; others require manual requests with evidence of remediation. Average delisting time is 2–4 weeks, during which your deliverability is degraded or blocked entirely.
Conservatively, this is 12 hours per month: 2 hours initial setup, 4 hours ongoing monitoring, 2 hours monthly deliverability review, and 4 hours per month averaged across occasional incidents (a spike in bounces, a complaint wave, a blacklist). At $50/hour (roughly a $100,000/year DevOps salary), that is $7,200/year.
Total self-hosting cost: $480 server + $7,200 DevOps time = $7,680/year.
Compare that to SES Essentials at $192/year for 100K emails per month. Self-hosting costs 40.0× more.
Most VPS providers block port 25 anyway
Even if you decide the operational complexity is worth it, there is a practical blocker: most VPS providers (including DigitalOcean and Vultr by default) block outbound port 25 to prevent spam. You can request unblocking, but approval is not guaranteed, and many providers require you to demonstrate a history of legitimate sending first — which you cannot do without an already-warmed IP.
The workaround is to relay through SES, Mailgun, or SendGrid anyway. At that point, your self-hosted Postal or Stalwart instance is an extra layer of software you maintain while still paying a per-email sending fee. You have not eliminated the SaaS cost; you have added a maintenance burden on top of it.
When self-hosting makes sense (the 1%)
Three narrow cases:
- HIPAA or regulatory requirements that emails cannot leave your infrastructure, and you cannot use AWS GovCloud SES (which is HIPAA-eligible with a BAA). This is extremely rare; most healthcare and financial companies use GovCloud or a HIPAA-compliant ESP.
- Sending volume above 10 million emails per month with a full-time email engineer on staff. At that scale, the marginal cost of self-hosting (adding more IPs, managing multiple warm-up pools) drops below the per-email cost of managed services. But you need deep email expertise in-house — this is not a weekend project.
- Needing full control over SMTP protocol details — custom retry logic, non-standard headers, protocol-level customization that no API-based service supports. Extremely niche; relevant for email infrastructure companies, not for businesses sending transactional mail.
For the other 99%, the cheapest and most reliable option is SES Essentials. For teams who value support and polish over cost, Postmark is worth the premium.
Bottom line: this is the exception
Most pages on this site conclude that self-hosting saves money. Transactional email is the exception, and documenting that exception is the point of this page.
The pattern that holds for analytics, CRM, forms, and scheduling breaks for email because the hidden cost — IP reputation, deliverability, and the DevOps time to maintain both — dwarfs the visible cost of the SaaS subscription. SES Essentials at $192/year is cheaper than self-hosting at $7,680/year, and Postmark at $1,200/year is cheaper than the revenue risk of emails landing in spam.
This is not an argument against self-hosting in general. It is an argument that transactional email is different, and the math works backward.
If you're staying on a managed email service, Postmark is the recommendation for teams that want deliverability support and a polished dashboard. SES Essentials is the recommendation for teams comfortable with AWS who want the lowest per-email cost. (Affiliate disclosure: we earn a commission if you sign up for Postmark through the link above. This does not change your price.)
Open-source options (for completeness)
If you decide to proceed anyway, three projects exist:
- Postal — MIT, Ruby on Rails, MySQL, RabbitMQ. The most mature self-hosted mail server in the Ruby ecosystem. Requires MySQL, RabbitMQ, and significant Rails experience.
- Maddy Mail Server — GPL-3.0, Go. Lightweight single-binary mail server. Easier to deploy than Postal but still requires full SMTP expertise.
- Stalwart Mail Server — AGPL-3.0, Rust. Modern Rust implementation with built-in spam filtering. Still requires IP warm-up, deliverability monitoring, and blacklist management.
All three require you to handle IP reputation, DKIM/SPF/DMARC, feedback loops, bounce classification, and blocklist monitoring yourself. The software is open source; the operational complexity is not.
Ready to deploy?
The self-host options above all run cleanly on modern VPS providers. Our recommended stack:
We earn a commission from DigitalOcean, Cloudways and Vultr when you sign up through the links above, and from some links in the article. We only include hosts we run production workloads on. Prices shown are the vendors' published rates; clicking through does not change what you pay. The OSS rankings above are independent of this section.