← Blog

Email automation

Resend, Postmark of SES: kiezen na een bounce-piek

Om 09:14 op een dinsdagochtend in februari ging de bounce-grafiek verticaal. Een Nederlandse SaaS met 480k transactionele mails per maand was z'n reputatie kwijt.

Jacob Molkenboer· Oprichter · A Brand New Company· 15 jul 2024· 7 min
Versleten manilla envelop met gebarsten donkergroen lakzegel, groen lint, rode stempel op ivoor papier.

De ochtend dat de grafiek verticaal ging

Om 09:14 op een dinsdag in februari stuurde de head of platform bij een Rotterdamse SaaS ons één screenshot via Slack. De bounce rate op transactionele mail was van 1,4% naar 23% gesprongen, in één nacht. Inlogcodes kwamen niet aan. Password resets belandden in de spamfolder van Gmail. Voordat iemand z'n eerste koffie op had, stonden er 41 nieuwe tickets in de support-inbox.

Ze verstuurden zo'n 480.000 transactionele mails per maand. Allemaal vanaf één domein, via één provider, op een gedeelde IP-pool. Tegen de tijd dat wij in de call zaten, stonden twee van de vier shared IPs op Spamhaus.

Dit is de vergelijking die we die week deden, eerlijk verteld, tussen Resend, Postmark en Amazon SES. De vraag is niet "welke is het beste". De vraag is "welke past bij een Nederlandse SaaS van een half miljoen mails per maand die net z'n sender reputation heeft verloren".

Wat er werkelijk stuk ging

Voordat een toolvergelijking iets uitmaakt: de diagnose. We trokken de mail logs van de afgelopen 90 dagen erbij en de postmortem was deprimerend gewoontjes:

  • Eén verzenddomein deed zowel transactionele mail (verificatiecodes, password resets, facturen) als marketingmail (productnieuwsbrief, feature-aankondigingen).
  • Eén marketingcampagne ging uit naar een lijst die ze twee jaar eerder hadden overgenomen bij de acquisitie van een concurrent. Die lijst was nooit opnieuw bevestigd. Ongeveer 9% bouncede hard binnen een uur.
  • De gedeelde IP-pool ving die bounce-golf op en daarna de spamklachten. De domain reputation in Google Postmaster Tools ging in één middag van groen naar rood.
  • DMARC stond op p=none. Niets vertelde het team dat de schade live plaatsvond.

De provider was op zichzelf niet het probleem. Hetzelfde team had op elk van deze drie platforms kunnen zitten en had op dezelfde manier hetzelfde domein verbrand. De les, vóór elke toolkeuze, is dat je je streams scheidt.

Waarschuwing

Als je password resets en je maandelijkse nieuwsbrief vanaf hetzelfde domein op dezelfde IP-pool vertrekken, heb je geen deliverability-strategie. Je hebt een single point of failure met een marketingkalender erop.

Amazon SES, eerlijk verteld

SES is de goedkoopste serieuze optie op de markt. Bij 480k mails per maand zit je ongeveer op €45 aan verzendkosten, plus een paar euro voor SNS bounce events en uitgaande data. Je kunt hosten in eu-west-1 (Ierland) of eu-central-1 (Frankfurt) voor EU-dataresidentie.

Wat je krijgt: een ruwe SMTP-relay, een virtuele MTA met redelijke defaults, sandbox-limieten tot je productie-toegang aanvraagt, en de optie voor een dedicated IP wanneer je dat wilt. Wat je niet krijgt: templates die je wilt gebruiken, een dashboard dat je supportteam kan lezen, suppression lists die je vanuit een browser kunt beheren, of enige content rendering.

Waar SES je stil geld kost is in operations. Je schrijft de bounce- en complaint-afhandeling zelf. Je sluit SES events via SNS aan op je queue of een Lambda. Je doet de warmup op een verse dedicated IP zelf. Sla je de warmup over, dan throttlet AWS je niet, maar Gmail en Microsoft wel. Het prijsverschil betaal je terug in engineer-uren, niet in factuurregels.

Als je team al in AWS leeft, je een platform engineer hebt die ooit een mailstack heeft beheerd, en je volume vooral machine-leesbaar is, dan is SES op prijs lastig te verslaan. Is een van die twee niet waar, dan betaal je het verschil binnen een kwartaal terug in incidenten.

Postmark, eerlijk verteld

Postmark is de saaie, eigenzinnige keuze die al jaren bovenaan publieke deliverability-benchmarks staat. ActiveCampaign nam Wildbit (het moederbedrijf van Postmark) in 2022 over en het product heeft tot nu toe z'n richting behouden.

De mening die in het product zit ingebakken is precies de mening die we zelf hadden willen bouwen. Postmark dwingt je om per "server" aan te geven of die transactioneel of broadcast is, en je kunt geen marketingmail door een transactionele server sturen. Dat is geen feature. Dat is een hek om je sender reputation heen, eigendom van de vendor, zodat je 'm niet per ongeluk kunt slopen met een cron op vrijdagavond.

Bij 480k per maand is de rekening pittig. Postmark's per-credit pricing landt op dit volume ergens tussen de €400 en €600, afhankelijk van tier en valuta. Vergeleken met SES is dat bijna tien keer zoveel. Vergeleken met de kosten van een volwaardig deliverability-incident is het twee engineering-dagen.

EU-dataresidentie is beschikbaar, maar het is een aparte optie die je aanvraagt, geen region-keuze. Zit je onder een strikte lezing van de AVG of zijn je klanten publiek-sector, breng dit dan op in het salesgesprek voordat je tekent.

Resend, eerlijk verteld

Resend is de jongste van de drie. Het product lanceerde in 2023 en is de zeldzame transactional email service die aanvoelt als modern developer tooling. Templates zijn React-componenten. Het dashboard is snel. De SDK's lezen niet als ports van een PHP-library uit 2013.

Voor een EU-SaaS is het relevante detail dat Resend nu een EU-regio biedt. Mail kan in Europa verstuurd en opgeslagen worden zonder omweg via de Verenigde Staten. Dat ontbrak een jaar geleden nog. Dat ontbreekt niet meer.

Bij 480k per maand zit Resend qua prijs tussen SES en Postmark in, ergens in de lage drie cijfers euro, afhankelijk van de exacte volumecurve. De afweging zit in de diepte van de reputatie. Resend had minder tijd dan Postmark om diepe relaties met mailbox providers op te bouwen. In de praktijk zien we dat Gmail en Outlook hun IP-pool prima behandelen, maar de gracht eromheen is dunner. Stuur je naar een lange staart van zakelijke Microsoft 365 tenants, dan is dit een echte test waard voordat je tekent.

De echte kosten op 480k

Pricing-pagina's zijn zelden het bedrag dat je daadwerkelijk betaalt. Hieronder ongeveer waar 480.000 per maand op uitkomt, uitgaande van de standaard pay-as-you-go tiers per medio 2026. Behandel het als richtpalen, niet als facturen.

ProviderMaandelijkse verzendkostenEU-regioDeliverability-grachtWat jij meebrengt
Amazon SES~€45 tot €65Ierland, FrankfurtBouw je zelfTemplates, bounce-afhandeling, warmup, dashboard
Resend~€90 tot €150IerlandRedelijk, jongBijna niets
Postmark~€400 tot €600Op aanvraagSterkste van de drieEen echte mening over wie wat verstuurt

Geen van deze bedragen bevat de engineering-week die de migratie kost, het dedicated IP-tarief als je dat kiest, of de tijd die je in vendor-supporttickets stopt. SES ziet er op de regel tien keer goedkoper uit. Het is niet tien keer goedkoper in totaal.

De keuze die we maakten

Voor deze klant adviseerden we Postmark voor transactionele mail en Resend voor marketing, op twee gescheiden subdomeinen (tx.hunmerk.com en mail.hunmerk.com), met SPF, DKIM en DMARC aligned per subdomein. SES was niet het antwoord omdat hun platformteam uit drie mensen bestond en niemand van hen ooit een mailstack had beheerd. De grofweg €600 per maand verschil was goedkoper dan één extra deliverability-incident.

De redeneerregel achter de keuze: kies de vendor waarvan je de productmening zelf zou moeten verzinnen als hij er niet was. Postmark weigert simpelweg om marketingmail vanaf een transactionele server te laten vertrekken. Dat ene hek is grofweg waarom het merk z'n deliverability-cijfers heeft, en het is precies de regel die een klein team dat net z'n domeinreputatie kwijt is beter kan huren dan zelf proberen af te dwingen.

Cutover zonder het domein op te branden

De migratie is het stuk dat niemand opschrijft. De volgorde die we aanhielden:

  1. Koop het nieuwe subdomein en zet SPF, DKIM en DMARC. Start DMARC de eerste week op p=none, daarna p=quarantine, na de tweede schone week p=reject. Stuur de reporting-adressen naar een echte inbox, niet naar een zwart gat.
  2. Verstuur eerst je laagste-volume, hoogste-engagement mail. Inlogcodes gaan vóór facturen. Facturen gaan vóór betalingsbevestigingen. Betalingsbevestigingen gaan vóór wat dan ook van marketing.
  3. Schaal volume met ongeveer 2x per dag op. SES wil 14 dagen warmup op een dedicated IP. Resend en Postmark warmen gepoolde IPs zelf, maar je subdomein moet alsnog opwarmen bij het reputatiesysteem van elke mailbox provider.
  4. Draai beide providers minstens twee weken parallel. Stuur dezelfde mail via de oude provider met een stille tag, en via de nieuwe provider als de source of truth. Vergelijk opens, niet alleen delivered.
  5. Haal de oude provider pas uit DNS nadat de reputatie van het nieuwe domein in Google Postmaster Tools zeven dagen op rij "high" en vlak is geweest.

De verleiding, midden in een live incident, is om alles in één keer naar de nieuwe provider om te zetten. Doe het niet. Je ruilt het ene deliverability-probleem in voor het volgende, en je weet niet welke fix de naald heeft bewogen.

Kernpunt

Scheid transactioneel en marketing over verschillende subdomeinen voordat je providers vergelijkt. De ESP breekt zelden in z'n eentje je deliverability. Een gemengde stream wel.

Waar je morgen begint

De audit van vijf minuten: log in op Google Postmaster Tools, zoek de domain reputation-grafiek en kijk naar de laatste 30 dagen. Is dat iets anders dan "high" en vlak, dan is er al iets mis. Die grafiek is het enige eerlijke scorebord dat je hebt, en hij is gratis. De rest van deze post is wat je doet als je 'm gezien hebt.

Toen we deze migratie voor de Rotterdamse SaaS deden, liepen we ertegenaan dat hun authenticator-codes stilletjes via de marketingstream werden verstuurd, door een oude worker waar niemand in het team meer eigenaar van was. We losten het op met een one-shot Postgres-script dat elke outbox-rij flagde waarvan de template-tag niet overeenkwam met de route die de worker daadwerkelijk gebruikte. Dat is het werk waar onze email-agent praktijk de meeste tijd in steekt: niet de ESP kiezen, maar de worker vinden die stiekem de keuze sloopt die je al gemaakt had.

Kern

Scheid transactioneel en marketing over verschillende subdomeinen voordat je providers vergelijkt. De ESP breekt zelden in z'n eentje je deliverability. Een gemengde stream wel.

FAQ

Waarom stortte de deliverability in als de provider goed bekend staat?

Omdat hetzelfde domein zowel transactionele als marketingmail deed op een gedeelde IP-pool. Een bounce-golf van één campagne vergiftigde de reputatie waarop de password resets leunden. De provider zat downstream van het echte probleem.

Is SES echt tien keer goedkoper dan Postmark op 480k per maand?

Op de factuur, ja. Tel je de engineer-uren mee voor templates, bounce-afhandeling, warmup en je eigen dashboard, dan slinkt het gat snel. SES is het goedkoopst als je al een platform engineer hebt die eerder een mailstack heeft beheerd.

Hebben we echt gescheiden subdomeinen nodig voor transactioneel en marketing?

Ja. Mailbox providers scoren reputatie per domein. Delen password resets en de nieuwsbrief er één, dan brengt een slechte nieuwsbriefdag stilletjes je reset-delivery omlaag. Het subdomein splitsen is de goedkoopste verzekering die je kunt kopen.

Hoe lang duurt een IP-warmup in de praktijk?

Ongeveer 14 dagen op een dedicated IP, waarbij je het volume per dag verdubbelt. Gepoolde IPs bij Resend en Postmark zijn al opgewarmd, maar je verzendsubdomein heeft alsnog ongeveer een week nodig om reputatie op te bouwen bij elke mailbox provider.

email automationintegrationsmigrationoperationsarchitecture

Iets bouwen?

Start een project