Skip to content
Published on

Email Infrastructure 2026 — Resend · Postmark · SendGrid · Mailgun · AWS SES · Loops · React Email · MJML Deep Dive

Authors

Prologue — "They keep saying email is dead, so why does the infrastructure get more complex every year?"

Every year someone shouts that email is dead. Slack took internal communication, WhatsApp and KakaoTalk took personal messaging, Discord and Notion took communities. Yet in 2026 the overwhelming majority of SaaS businesses still send signup confirmations, payment receipts, password resets, marketing campaigns, and notifications through email.

If anything, it has gotten more complicated. In the 2010s you connected SMTP to SendGrid or Mailgun and called it done. In 2026 you face a decision tree like this.

  1. Transactional, marketing, or notification — different tools.
  2. Who owns SPF, DKIM, DMARC, and BIMI setup plus monitoring?
  3. Warm up your own sending domain or rent a managed IP pool?
  4. After Apple Mail Privacy Protection broke open tracking, what metric replaces it?
  5. Build with React Email components, with MJML markup, or with visual editors like Stripo and Beefree?
  6. Hand notification routing to Knock, Courier, or Novu, or build it yourself?

This piece draws the full map of 2026 email infrastructure: the transactional market split across Resend, Postmark, SendGrid, Mailgun, and AWS SES; the marketing space across Loops, Customer.io, Mailchimp, Klaviyo, Kit, and Beehiiv; notifications via Knock, Courier, and Novu; builders such as React Email, MJML, and Maizzle; plus deliverability, privacy, and compliance — all at once.


1 · Transactional vs Marketing vs Notification — Do Not Mix the Three

The first mistake a team starting with email makes is "one tool for everything." Transactional, marketing, and notification have different recipient expectations and require different reputation management.

CategoryExamplesCharacteristics
TransactionalSignup confirm, receipts, password reset, 2FA codes1:1, immediate, zero spam tolerance, requires high reputation
Marketing (broadcast)Newsletters, promotions, campaigns1:N, scheduled, opt-in required, unsubscribe link mandatory
NotificationDigests, comment alerts, activity summaries1:1 but frequent, channel preferences (email, SMS, push)

If you send all three from the same domain through the same tool, reputation collapses fast. A single marketing spam complaint surge can bury receipts in the spam folder too. Ops teams therefore separate sending subdomains.

PurposeRecommended subdomainTools
Transactionaltx.example.com, mail.example.comPostmark, Resend, AWS SES
Marketingnews.example.com, marketing.example.comLoops, Mailchimp, Customer.io
Notificationnotify.example.comKnock, Courier (backend: SES, etc.)

The principle is reputation isolation. When one side breaks, the other must remain safe.


2 · Deliverability Fundamentals — SPF · DKIM · DMARC · BIMI

What lands a message in the inbox versus the spam folder is not content — it is authentication. In 2026 the following four items are not optional.

  1. SPF (Sender Policy Framework) — A TXT record on the domain stating "only these IPs are legitimate senders." Form: v=spf1 include:_spf.example.net ~all.
  2. DKIM (DomainKeys Identified Mail) — A header signature. Receivers verify with the domain public key. 2048-bit recommended.
  3. DMARC (Domain-based Message Authentication, Reporting, and Conformance) — Declares the policy (none / quarantine / reject) when SPF and DKIM fail, and emits reports to monitor spoofing attempts.
  4. BIMI (Brand Indicators for Message Identification) — When DMARC is at reject and you hold a VMC (Verified Mark Certificate), the brand logo renders in the recipient UI. Gmail, Yahoo, and Apple Mail support it.

In February 2024 Gmail and Yahoo tightened policy: senders over 5,000 messages per month are required to set DMARC. By 2026 essentially every business sender needs DMARC quarantine or stronger.

; SPF
example.com.  TXT  "v=spf1 include:_spf.resend.com include:_spf.mailgun.org ~all"

; DKIM (selector provided by Resend)
resend._domainkey.example.com.  TXT  "v=DKIM1; k=rsa; p=MIIB..."

; DMARC
_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; pct=100; aspf=s; adkim=s"

; BIMI (with VMC certificate)
default._bimi.example.com.  TXT  "v=BIMI1; l=https://example.com/logo.svg; a=https://example.com/vmc.pem"

On top of this, reverse DNS (PTR) must match the forward domain, and IP reputation must be clean. When renting a managed IP pool rather than running your own, who else lives in the pool matters.


3 · Resend — 2023 Y Combinator, Developer-First Transactional

Resend launched in the Y Combinator W23 batch. The one-liner was "developer-first email API," and the small API surface drove fast adoption.

Core Traits

  • A tiny API surface — start with a single POST /emails endpoint.
  • First-class React Email integration — the open-source builder Resend authored. Write JSX components and send them directly.
  • A clean domain authentication flow — the console proposes SPF, DKIM, and DMARC records in one place.
  • Pricing — 100 per day free, Pro $20/month for 50,000.
  • Multi-region (US, EU) for data residency.

Weaknesses

  • Marketing (broadcast) features arrived later. For serious campaigns the Loops or Customer.io stack is stronger.
  • At very high volume (over ten million per month), the cost advantage over running AWS SES directly shrinks.
// Resend SDK (Node.js)
import { Resend } from 'resend'
import { WelcomeEmail } from './emails/Welcome'

const resend = new Resend(process.env.RESEND_API_KEY)

await resend.emails.send({
  from: 'YJ Blog <noreply@tx.example.com>',
  to: ['user@example.com'],
  subject: 'Welcome',
  react: WelcomeEmail({ name: 'Youngju' }),
})

4 · Postmark — Acquired by ActiveCampaign, Deliverability Leader

Postmark was acquired by ActiveCampaign in 2025 but the brand persists. Its market position has been consistent — "transactional only, top of the class on deliverability."

Core Traits

  • Marketing sends are explicitly refused. Streams are split into transactional and broadcast.
  • Average inbox delivery time is consistently seconds — ideal for receipts and codes.
  • Postmark DMARC Digest — a free service that visualizes DMARC reports. Domain-spoofing monitoring is one click away.
  • Templates and variable substitution are strong, Mustache style.

Weaknesses

  • Pricey — about $50/month for 100K transactional. At scale the gap to SES is large.
  • Marketing campaigns require a separate tool.
curl -X POST "https://api.postmarkapp.com/email" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Postmark-Server-Token: YOUR_TOKEN" \
  -d '{
    "From": "noreply@tx.example.com",
    "To": "user@example.com",
    "Subject": "Welcome",
    "HtmlBody": "<h1>Hello</h1>",
    "MessageStream": "outbound"
  }'

5 · SendGrid — Under Twilio, Both Transactional and Marketing

After Twilio acquired SendGrid in 2019 it became a full-stack platform covering both transactional and marketing. By market share it is still number one.

Core Traits

  • Both API and SMTP are supported — strong on legacy compatibility.
  • A Marketing Campaigns module with segmentation, automation, and A/B testing.
  • The Twilio SendGrid Email Validation API for pre-send validation.
  • Global infrastructure — US, EU, and Japan regions.
  • Automated IP warm-up — gradually heats new IPs over several days.

Weaknesses

  • The console UX is, suitably for a full-stack platform, complex.
  • Sending policy is strict, so cold start for a new account is harder.
  • Pricing — 100/day free, Essentials from $19.95/month.
# SendGrid Python SDK
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail

message = Mail(
    from_email='noreply@tx.example.com',
    to_emails='user@example.com',
    subject='Welcome',
    html_content='<h1>Hello</h1>')

sg = SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
response = sg.send(message)

6 · Mailgun — Under Sinch, Developer-Friendly API

Mailgun joined Sinch in 2021 and became part of the global communications group. Its niche: "lighter than SendGrid, with a cleaner developer API."

Core Traits

  • HTTP API and SMTP both. Routing rules (inbound processing) are powerful too.
  • The MJML2HTML compiler is maintained as open source (Mailgun-sponsored).
  • Deliverability tools — Inbox Placement Testing, Send Time Optimization.
  • Multi-region (US, EU) for data sovereignty.
  • Pricing — Foundation from $35/month for 50K.

Weaknesses

  • The UI is sparser than SendGrid. Fits teams who operate through the API.
  • Marketing campaign tooling is weaker than SendGrid or Mailchimp.
curl -s --user 'api:YOUR_API_KEY' \
  https://api.mailgun.net/v3/mail.example.com/messages \
  -F from='Y. Kim <noreply@mail.example.com>' \
  -F to=user@example.com \
  -F subject='Welcome' \
  -F html='<h1>Hello</h1>'

7 · AWS SES — Cheapest at Scale

Amazon Simple Email Service charges 0.10 USD per 1,000 messages. At scale there is no comparison. The trade-off: reputation management, bounce/complaint handling, and UI are all on you.

Core Traits

  • Pricing — 0.10 USD per 1,000 sends. From EC2, the legacy 62,000/month free policy may still apply (check current state).
  • SNS/SQS deliver bounces, complaints, and delivery events in near real time.
  • Configuration Sets isolate sending domains and event streams.
  • Multi-region — us-east-1, eu-west-1, ap-northeast-1, and more.
  • Dedicated IP, IP Pool, and BYOIP (bring your own IP).

Weaknesses

  • New accounts start in sandbox mode (verified recipients only). Production access is a separate request.
  • Reputation, bounces, and UI are all your problem — operational cost relative to SaaS is non-trivial.
  • The console has typical AWS density.

The standard pattern at scale is "AWS SES + your own queue (SQS) + your own worker + Resend/Postmark as partial fallback."

# boto3 ses send_email
import boto3

ses = boto3.client('ses', region_name='ap-northeast-1')

ses.send_email(
    Source='noreply@tx.example.com',
    Destination={'ToAddresses': ['user@example.com']},
    Message={
        'Subject': {'Data': 'Welcome'},
        'Body': {'Html': {'Data': '<h1>Hello</h1>'}},
    },
    ConfigurationSetName='tx-config',
)

8 · Self-Hosting — Postal · Listmonk · Plunk · Maileroo

Self-hosted options are alive for regulated environments where you cannot use managed services, or when cost matters.

ToolTraitFits
PostalA self-hosted SMTP gateway in RubyTeams running their own infra
ListmonkA single-binary newsletter app in GoNewsletters, marketing
PlunkOpen-source SaaS alternativeTransactional plus campaigns
MailerooManaged plus self-hosted hybridHigh-volume sending
MaileonEU data sovereignty firstEU regulated environments
Notification HubSelf-hosted notification channel managerCommunities, open source

The structural limit of self-hosting is IP reputation. Big-tech mail services auto-suspect new IPs. Even on self-hosted setups, renting an IP with established reputation from an external transactional service is common.


9 · Marketing — Mailchimp · Loops · Customer.io

The marketing (broadcast) market is dominated by a completely different toolset.

ToolPositionStrengthPricing (approx)
MailchimpUnder Intuit, market leaderTemplates, automation, analytics2,500 contacts $20/month
LoopsYC W23, modern campaignsAPI-first, triggered automation1,000 contacts free
Customer.ioBehavior trigger focusEvent-driven campaignsFrom $100/month
Kit (formerly ConvertKit)Creator-focusedLanding pages, subscriber mgmtFrom $9/month
BeehiivNewsletter focusReferrals, monetizationFree to start
SubstackPaid newslettersPayments and subs built in10 percent of revenue
KlaviyoE-commerceShopify integration, segmentsFrom $20/month
HubSpotMarketing automationCRM integrationMarketing Hub $20/month
MailerLiteBudget alternativeCost efficiency1,000 subs free

Two trends shape 2026. The first: "campaigns as code" — Loops and Customer.io binding automation to your code base via APIs and triggers. The second: creator economy — the territory Beehiiv, Substack, and Kit have taken.

// Loops API — event-triggered campaign
await fetch('https://app.loops.so/api/v1/events/send', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + process.env.LOOPS_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    email: 'user@example.com',
    eventName: 'signup_completed',
    eventProperties: { plan: 'pro' },
  }),
})

10 · Notification Orchestration — Knock · Courier · Novu

Notifications are not plain email. Per-user channel preferences (email, SMS, push, in-app), frequency control, digesting, and time-zone handling all matter. Build it yourself and it becomes its own microservice.

ToolPositionTrait
KnockNotification orchestration SaaSWorkflows, digest, channel routing
CourierMulti-channel notificationsChannel routing, template unification
NovuOpen-source notification infrastructureSelf-hostable
One SignalPush-first plus emailStrong on mobile push

The typical pattern: "backend emits an event → Knock workflow → per user preference, email via Resend, push via FCM, SMS via Twilio." Frequency control and digesting (bundling many events into one email) are the value.

// Knock workflow trigger
await knock.workflows.trigger('new-comment', {
  recipients: ['user_123'],
  data: {
    comment: 'Great post!',
    author: 'Alice',
    post_title: 'Email Infra 2026',
  },
})

11 · Email Builders — React Email · MJML · Maizzle

Email HTML in 2026 still carries the Outlook compatibility baggage from 1996. Three families abstract over the pain.

React Email (Resend-sponsored)

  • Compose emails as React components.
  • The @react-email/components package ships Button, Hr, Img, Container, and more.
  • First-class Resend SDK integration — pass react: <Welcome /> and send.
  • Built-in preview server — pnpm dev for local preview.

MJML (Mailjet-sponsored)

  • An XML-like markup compiled to compatible HTML.
  • Responsive by default — handles Outlook 2007/2010 automatically.
  • Many visual editors (Stripo, Topol) use MJML under the hood.

Maizzle

  • Style email with Tailwind CSS.
  • Inlines CSS at build time.
  • Component slots and environment-specific build options.

Visual Editors

  • Stripo, Beefree, Topol, Postcards — drag and drop with HTML or MJML export.
// React Email component
import { Html, Body, Container, Heading, Text, Button } from '@react-email/components'

export function WelcomeEmail({ name }: { name: string }) {
  return (
    <Html>
      <Body style={{ fontFamily: 'Inter, sans-serif' }}>
        <Container>
          <Heading>Hello, {name}</Heading>
          <Text>Thanks for signing up at YJ Blog.</Text>
          <Button href="https://example.com/onboard">Get started</Button>
        </Container>
      </Body>
    </Html>
  )
}
<!-- MJML markup -->
<mjml>
  <mj-body>
    <mj-section>
      <mj-column>
        <mj-text font-size="20px">Hello</mj-text>
        <mj-button href="https://example.com">Get started</mj-button>
      </mj-column>
    </mj-section>
  </mj-body>
</mjml>

12 · Rendering QA — Outlook's Nightmare, Litmus, Email on Acid

Email clients vary far more than web browsers. Gmail, Apple Mail, Outlook (especially Windows Outlook 2007/2010/2013/2016/2019), Yahoo Mail, ProtonMail, mobile Gmail, and mobile Outlook all render the same HTML differently.

ToolTraitPricing
LitmusScreenshots across 50+ clientsPlus from $79/month
Email on Acid90+ clients plus accessibility checksBasic from $86/month
Hsoob Email PreviewBudget alternativeFree to start
MailtrapDeveloper SMTP sandbox plus previewFree to start

Windows desktop Outlook uses the Word rendering engine, so CSS Flexbox, Grid, and absolute positioning are useless. That is why email HTML is table-based. MJML and React Email generate such table-based structure automatically.


13 · DMARC Monitoring — Postmark Digest · DMARCian · EasyDMARC

Once DMARC is at quarantine or reject, violation reports arrive daily. Nobody should read them as raw XML. Use a visualizer.

ToolTrait
Postmark DMARC DigestFree, weekly summary email
DMARCianOldest SaaS, free tier
ValiMailEnterprise, also handles MTA-STS and BIMI
EasyDMARCBudget-friendly, multi-domain mgmt
OnDMARC (Red Sift)UK security company, automation

The standard playbook is staged tightening: start with p=none and collect reports for 30 days; if there are no violations, raise to p=quarantine; once stable, finish at p=reject.


14 · Apple Mail Privacy Protection — Death of Open Rate

When Apple Mail Privacy Protection arrived in 2021, tracking pixels were effectively neutralized. Apple Mail prefetches messages in the background, so open rate reads as 100 percent or loses meaning. As of 2026, Apple Mail accounts for roughly 50 percent globally.

Alternative metrics:

Deprecated metricAlternative
Open rateClick-through rate, reply rate
Time of openTime of click
Device (open-based)Device (click-based)
Pixel-based A/BClick and conversion-based A/B

Marketing tools added options too — "open rate correction (exclude Apple Mail)". Customer.io, Loops, and Mailchimp all support it.


15 · Regulation — CAN-SPAM · GDPR · CASL · K-PIPA · APPI

Email is inherently cross-border, so multiple regulations must be satisfied at once.

RegulationRegionCore obligations
CAN-SPAMUSUnsubscribe link, sender address, no false headers
GDPREUExplicit opt-in, consent records, right to delete
CASLCanadaExplicit opt-in, opt-out within 10 days
K-PIPASouth KoreaMark advertising with the tag, separate consent for nighttime sends
APPIJapanOpt-in principle, response to correction and stop-of-use requests
LGPDBrazilGDPR-like

If you operate to the tightest standard (K-PIPA), most other regions pass. For advertising mail, mark the subject as advertising, include sender info, an opt-out method, and explicit nighttime-send consent.


16 · Warm-Up — The First 30 Days for a New Domain or IP

Big-tech mail services auto-suspect a new domain or IP. The first days require gradual volume ramp — warm-up.

Warm-up tools:

  • Mailwarm — automated sends and replies to accumulate reputation.
  • Lemwarm — from the Lemlist family.
  • Mailflow — budget-friendly.
  • SendGrid and Mailgun automated IP warm-up.

A typical 30-day schedule:

  • Day 1-3: 50 per day.
  • Day 4-7: 200 per day.
  • Day 8-14: 1,000 per day.
  • Day 15-30: 5,000-50,000 per day.

During warm-up, send first to the most engaged users (clickers within the last 30 days). Warming up with a cold list damages reputation further.


17 · South Korea — KakaoTalk Biz Message · Naver Works

In Korea email alone is insufficient. Notifications via KakaoTalk, authentication via SMS, and marketing as email plus AlimTalk together form the standard combo.

ChannelToolTrait
KakaoTalk AlimTalkKakao Biz MessageInformational, free or low cost
KakaoTalk FriendTalkKakao Biz MessageAdvertising, opt-in mandatory
Naver WorksLINE WORKS KoreaEnterprise collaboration plus mail
Daum Cafe newsletterUnder KakaoCommunity newsletters
Mailply, StibeeKorean newsletter SaaSKorean UI, K-PIPA compliance

AlimTalk is strong for authentication codes and payment notifications. But only pre-registered templates are allowed, and content classified as advertising is downgraded to FriendTalk.


18 · Japan — SendGrid Japan · Sakura · Mailgun JP

Email retains a much higher share in Japan than in Korea. Business communication, internal announcements, and B2B sales remain email-centric.

ToolTrait
SendGrid JapanJapan region, Japanese support, JCB billing
Sakura InternetJapanese cloud plus mail hosting
Sakura MailboxDomain-based mailboxes
Mailgun JapanJapan office
Cuenote FCJapanese marketing email SaaS
Benchmark Email JapanJapanese marketing

A Japan specifics: carrier-run mail (docomo, KDDI, SoftBank) is still alive and applies its own spam filters. Monitoring delivery into docomo, au, and SoftBank inboxes separately is standard for Japan-domain sends.


19 · Cold Email — Apollo · Instantly · Smartlead · lemlist

Sales cold email has a different strategy from transactional and marketing — very low volume, high personalization. Tools are separate too.

ToolTrait
Apollo.ioDatabase plus sequence automation
InstantlyMulti-inbox rotation
SmartleadWarm-up plus sequences
lemlistImage personalization
Outreach.ioEnterprise sales sequences
SalesloftEnterprise sales

Cold email has no opt-in, which collides head-on with GDPR, CASL, and K-PIPA. Sending cold mail into the EU, Korea, or Canada is risky, and your sending domain's reputation drops fast. Cold-email sending domains are therefore always separated from the main domain.


20 · Architecture Pattern — API to Queue to Worker to Gateway

The standard pattern of a high-volume sending system looks like this.

[Application API]
   |  send_email(to, template, vars)
   v
[Message Queue (SQS / Kafka / RabbitMQ)]
   |  backpressure, retries, priority
   v
[Email Worker Pool]
   |  rendering, variable substitution, rate limits
   v
[Gateway (SES / Resend / SendGrid)]
   |
   +-> success -> [event log / analytics]
   +-> bounce  -> [SNS / webhook -> handler]
   \-> complaint -> [blocklist add / DLQ]

Design principles:

  1. Queue separation — transactional, marketing, and notification on separate queues. When one stalls, others keep flowing.
  2. Blocklist — auto-remove bounce and complaint addresses. Re-sending to them collapses reputation.
  3. DLQ (dead letter queue) — failed sends move to a side queue for analysis.
  4. Rate limits — per-gateway and per-domain hourly caps applied at the worker.
  5. Multi-gateway failover — if the primary gateway goes down, switch to a secondary, such as Resend to SES.
  6. Event log — every send, open, click, and bounce event lands in an analytics database.

21 · What Should Your Team Pick

Recommendations by workload, compressed once more.

SituationRecommendation
MVP transactionalResend or Postmark — both start fast
Under 100K per monthPostmark (deliverability) or Resend (React Email integration)
Over ten million per monthAWS SES plus your own queue and reputation management
B2C marketingMailchimp or Klaviyo (commerce), Loops (SaaS)
Behavior-triggered campaignsCustomer.io
Creator newsletterBeehiiv or Substack
Multi-channel notificationsKnock or Courier
Open-source notificationsNovu
Korea marketEmail (Resend / SES) plus KakaoTalk AlimTalk plus Stibee
Japan marketSendGrid Japan plus Sakura plus per-carrier monitoring

Attempts to unify on a single tool almost always fail. Separate transactional, marketing, and notification, pick the right tool for each, and combine them. That is the 2026 answer.


References