← Blog

Email automation

Resend vs Postmark vs SES: after a deliverability collapse

At 09:14 on a Tuesday in February the bounce graph went vertical. A Dutch SaaS sending 480k transactional emails a month had lost its sender reputation.

Jacob Molkenboer· Founder · A Brand New Company· 15 Jul 2024· 7 min
Weathered manila envelope with cracked dark green wax seal, green ribbon, red stamp on ivory paper.

The morning the graph went vertical

At 09:14 on a Tuesday in February, the head of platform at a Rotterdam SaaS pinged us in Slack with one screenshot. The bounce rate on transactional mail had jumped from 1.4% to 23% overnight. Login codes were not arriving. Password resets were dropping into the Gmail spam folder. The support inbox had 41 new tickets before anyone had finished their first coffee.

They were sending around 480,000 transactional emails a month. All of it from one domain, through one provider, on a shared IP pool. By the time we joined the call, two of the four shared IPs had landed on Spamhaus.

This is the comparison we ran that week, in honest terms, between Resend, Postmark, and Amazon SES. The angle is not "which one is best." It is "which one fits a Dutch SaaS at half a million emails a month that has just lost its sender reputation."

What actually broke

Before any tool comparison matters, the diagnosis. We pulled the last 90 days of mail logs and the postmortem was depressingly ordinary:

  • A single sending domain handled both transactional mail (verification codes, password resets, invoices) and marketing mail (product newsletter, feature announcements).
  • One marketing campaign went out to a list inherited from a competitor acquisition two years earlier. The list had never been re-confirmed. Around 9% of it bounced hard inside an hour.
  • The shared IP pool absorbed that bounce wave and the spam complaints that followed. The domain reputation dial in Google Postmaster Tools moved from green to red in a single afternoon.
  • DMARC was set to p=none. Nothing told the team the damage as it happened.

The provider was not, by itself, the problem. The same team could have been on any of these three platforms and burned the same domain the same way. The lesson, before any tool choice, is that you separate streams.

Warning

If your password resets and your monthly newsletter both leave from the same domain on the same IP pool, you do not have a deliverability strategy. You have a single point of failure with a marketing calendar.

Amazon SES in honest terms

SES is the cheapest serious option on the market. At 480k emails a month you are looking at roughly €45 in sending fees, plus a few euros for SNS bounce events and outbound data. You can host it in eu-west-1 (Ireland) or eu-central-1 (Frankfurt) for EU data residency.

What you get: a raw SMTP relay, a virtual MTA with reasonable defaults, sandbox limits until you request production access, dedicated IP options when you want them. What you do not get: templates worth using, a dashboard your support team can read, suppression lists you can manage from a browser, or any content rendering.

Where SES quietly costs you is operations. You write the bounce and complaint handling. You wire SES events through SNS into your queue or a Lambda. You manage warmup on a fresh dedicated IP yourself. If you skip the warmup, AWS will not throttle you, but Gmail and Microsoft will. The cost difference is paid back in engineer-hours, not invoice lines.

If your team already lives in AWS, has a platform engineer who has run a mail stack before, and your volume is mostly machine-readable, SES is hard to beat on price. If neither of those is true, you will spend the cost difference back in incidents within a quarter.

Postmark in honest terms

Postmark is the dull, opinionated choice that has shown up at the top of public deliverability benchmarks for years. ActiveCampaign acquired Wildbit (Postmark's parent) in 2022 and the product has so far kept its direction.

The opinion baked into the product is the one we wish we had built ourselves. Postmark forces you to declare which sending "server" is transactional and which is broadcast, and you cannot send marketing mail through a transactional server. That is not a feature. That is a fence around your sender reputation, owned by the vendor so you cannot accidentally break it from a Friday-evening cron job.

At 480k a month the bill is steep. Postmark's per-credit pricing at this volume lands in roughly the €400 to €600 range depending on tier and currency. Compared to SES that is close to ten times the spend. Compared to the cost of a full deliverability incident, it is two engineering days.

EU data residency is available, but it is a separate option you ask for, not a region selector. If you sit under a strict reading of GDPR or your customers are public sector, raise this in the sales call before signing.

Resend in honest terms

Resend is the newest of the three. The product launched in 2023 and is the rare transactional email service that feels like a modern developer tool. Templates are React components. The dashboard is fast. The SDKs do not read like ports of a PHP library from 2013.

For an EU SaaS the relevant detail is that Resend now offers an EU region. Mail can be sent and stored in Europe without a round-trip through the United States. That was the missing piece a year ago. It is no longer missing.

At 480k a month Resend sits between SES and Postmark on price, somewhere in the low three-figure euros depending on the exact volume slope. The trade-off is reputation depth. Resend has had less time than Postmark to build deep relationships with mailbox providers. In practice we have seen Gmail and Outlook treat their IP pool well, but the moat is thinner. If you send to a long tail of corporate Microsoft 365 tenants, this is worth a real test before signing.

The real cost at 480k

Pricing pages are rarely the number you actually pay. Here is roughly what 480,000 a month works out to, assuming the standard pay-as-you-go tiers as of mid-2026. Treat these as fence-posts, not invoices.

ProviderMonthly send costEU regionDeliverability moatWhat you bring
Amazon SES~€45 to €65Ireland, FrankfurtYou build itTemplates, bounce handling, warmup, dashboard
Resend~€90 to €150IrelandDecent, youngAlmost nothing
Postmark~€400 to €600On requestStrongest of the threeA real opinion about who sends what

None of these numbers includes the engineer-week it takes to migrate, the dedicated IP fee if you choose one, or the time you spend in vendor support tickets. SES looks ten times cheaper on the line item. It is not ten times cheaper in total.

The call we made

For this client we recommended Postmark for transactional mail and Resend for marketing, on two separate subdomains (tx.theirbrand.com and mail.theirbrand.com), with SPF, DKIM, and DMARC aligned per subdomain. SES was not the answer because their platform team was three people and none of them had run a mail stack before. The roughly €600 a month delta was cheaper than one more deliverability incident.

The reasoning rule behind the call: pick the vendor whose product opinion you would have to invent if it were not there. Postmark refuses to let marketing mail leave a transactional server. That single fence is most of why the brand has the deliverability numbers it does, and it is exactly the rule a small team that has just lost a domain reputation should rent rather than try to enforce themselves.

Cutover without burning the domain

The migration is the part nobody writes about. The order we ran:

  1. Buy and SPF/DKIM/DMARC the new subdomain. Start DMARC at p=none for the first week, p=quarantine after, p=reject after the second clean week. Point the reporting addresses at a real inbox, not a black hole.
  2. Send your lowest-volume, highest-engagement mail first. Login codes go before invoices. Invoices go before receipts. Receipts go before any marketing thing.
  3. Ramp volume by roughly 2x per day. SES wants a 14-day warmup on a dedicated IP. Resend and Postmark warm pooled IPs themselves, but your subdomain still has to warm with each mailbox provider's reputation system.
  4. Run both providers in parallel for at least two weeks. Send the same message via the legacy provider with a quiet tag and via the new provider as the source of truth. Compare opens, not just delivered.
  5. Cut the old provider out of DNS only after the new domain's Google Postmaster Tools reputation has been "high" and flat for seven consecutive days.

The temptation, when an incident is live, is to flip everything to the new provider at once. Do not. You will replace one deliverability problem with another and you will not know which fix moved the needle.

Takeaway

Separate transactional and marketing onto different subdomains before you compare providers. The ESP rarely breaks deliverability on its own. A mixed stream does.

Where to start tomorrow

The five-minute audit: log into Google Postmaster Tools, find the domain reputation graph, and look at the trailing 30 days. If it is anything other than "high" and flat, something is wrong already. That graph is the only honest scoreboard you have, and it is free. The rest of this post is what to do once you have seen it.

When we ran this migration for the Rotterdam SaaS, the thing we ran into was that their authenticator codes were being silently sent through the marketing stream by an old worker nobody on the team owned. We solved it by writing a one-shot Postgres script that flagged any outbox row whose template tag did not match the route its worker actually used. That is the work our email-agent practice spends most of its time on: not picking the ESP, but finding the worker that is quietly breaking the choice you already made.

Key takeaway

Separate transactional and marketing onto different subdomains before you compare providers. The ESP rarely breaks deliverability on its own. A mixed stream does.

FAQ

Why did the deliverability collapse if the provider was reputable?

Because the same domain handled transactional and marketing mail on a shared IP pool. A bounce wave from one campaign poisoned the reputation that the password resets depended on. The provider was downstream of the real problem.

Is SES really ten times cheaper than Postmark at 480k a month?

On the invoice, yes. Once you add engineer-hours for templates, bounce handling, warmup, and your own dashboard, the gap closes fast. SES is cheapest when you already have a platform engineer who has run a mail stack before.

Do we really need separate subdomains for transactional and marketing?

Yes. Mailbox providers score reputation by domain. If password resets and the newsletter share one, a bad newsletter day silently drops reset delivery. Splitting the subdomain is the cheapest insurance you can buy.

How long does an IP warmup take in practice?

Around 14 days on a dedicated IP, ramping volume two-fold per day. Pooled IPs at Resend and Postmark are pre-warmed, but your sending subdomain still needs about a week to earn reputation with each mailbox provider.

email automationintegrationsmigrationoperationsarchitecture

Building something?

Start a project