Amazon SES vs Mailgun: 2026 Comparison After the Flex Plan Doubling

← Infrastructure Comparisons

Amazon SES vs Mailgun: 2026 Comparison After the Flex Plan Doubling

 December 3, 2025 ·  15 min read ·  Henrik Larsen

If the Postmark-versus-SES comparison is about reliability versus economics, the Mailgun-versus-SES comparison is about developer experience versus pure cost. Mailgun (now part of Sinch, which acquired it in 2021) charges a premium over SES for the platform layer it provides on top of basic SMTP relay: a cleaner REST API, included email validation, dashboard analytics, log retention, and the operational tools that AWS expects you to build yourself. The premium narrowed for a while as Mailgun's pricing held flat and SES added the Virtual Deliverability Manager. Then December 2025 happened and the comparison tilted again.

This piece works through the current state of both products as of mid-2026, with attention to the Mailgun Flex price doubling that reshaped low-volume economics overnight, the SES VDM addition that finally closed the deliverability-visibility gap, and the operational handoff each provider expects from its customers.

1 Dec 2025
Mailgun Flex doubled from $1 to $2 per 1,000 emails overnight
$0.10/1K
AWS SES base rate; unchanged for several years
$35 to $90
Mailgun fixed-tier range: Foundation 50K, Scale 100K monthly
~17.5K
Volume at which Foundation $35 becomes cheaper than Flex $2/1K

What changed in late 2025-2026

Two shifts. Both material.

Two material shifts changed the comparison.

The first was Mailgun's December 2025 Flex plan doubling. The pay-as-you-go Flex plan went from $1.00 per 1,000 emails to $2.00 per 1,000 with effectively no advance warning to existing customers. The strategic intent was clear once the dust settled: at $2.00 per 1,000, Flex is more expensive than the overage rate on every paid subscription tier (Basic at $1.80, Foundation at $1.30, Scale at $1.10 per 1,000). Mailgun no longer wants pay-as-you-go customers below subscription threshold; the new economics push everyone toward Foundation or higher. For developers who built side projects on Flex's irregular-sending economics, this came as an unpleasant surprise.

The second was the rollout of AWS SES Virtual Deliverability Manager. Before VDM existed, SES gave operators near-zero deliverability visibility beyond raw bounce and complaint counts. Diagnosing an inbox-placement problem meant assembling third-party seedlist tests against CloudWatch metrics that did not really show what was happening. VDM Standard, at an additional $0.07 per 1,000 on top of the $0.10 base rate, adds per-domain inbox placement scoring, sending recommendations, and a deliverability dashboard. SES with VDM now offers managed-deliverability visibility broadly comparable to Mailgun's, which closed one of Mailgun's biggest historical advantages over SES.

The combined effect is that the Mailgun premium over SES is harder to justify in 2026 than it was in 2024. The developer experience gap remains real (more on that below), but the deliverability-tooling gap that used to widen the price spread has narrowed considerably.

Side by side: what each provider actually sells

Amazon SES

Raw infrastructure · AWS-native

An email-sending API at infrastructure pricing. SES handles the SMTP layer; the operator builds bounce processing, warmup automation, deliverability monitoring, and alerting. Deeply integrated with the rest of AWS: SNS for events, SQS for queues, Lambda for processing, CloudWatch for metrics, IAM for access control.

  • Base rate: $0.10 per 1,000 emails
  • Virtual Deliverability Manager: +$0.07 per 1,000 (Standard tier)
  • Dedicated IP (managed): $24.95 per IP per month
  • Attachment data: $0.12 per GB
  • Free tier: 62,000/month sent from EC2; otherwise 0
  • Sandbox: 200 emails/24h until graduation request

Mailgun (Sinch)

Developer-first email API · Sinch-owned since 2021

A transactional email platform with clean REST API, included email validation, multi-domain SMTP credential management, and platform-level deliverability tooling. The developer experience genuinely is the differentiator: things that take days on SES typically take hours on Mailgun. Owned by Sinch (acquired 2021).

  • Foundation: $35/mo, 50,000 emails, $1.30/1K overage
  • Scale: $90/mo, 100,000 emails, $1.10/1K overage
  • Basic: $15/mo, 10,000 emails, $1.80/1K overage
  • Flex (pay-as-you-go): $2/1K (doubled Dec 2025)
  • Dedicated IP: $59/month (Scale plan add-on)
  • EU data residency: +$10/month

The categorical framing matters. SES sells the email-sending action at near-zero margin; Mailgun sells the developer-and-operator experience around that action at a margin. Neither approach is right or wrong, but they suit different team profiles. AWS-native teams building everything on Lambda and CloudWatch get more value from SES because they will integrate it natively into existing workflows. Teams without that AWS depth pay more for Mailgun and get back the engineering time they would have spent building the AWS-side layer.

An analogy borrowed from kitchen tools illustrates the dynamic. A professional chef who already owns a full mise-en-place setup buys raw ingredients and breaks them down themselves; the savings compound over months of cooking. A weekend home cook with limited kitchen equipment buys the same ingredients pre-cut from a butcher who charges a premium for the labour. Both are correct choices for their respective contexts. Neither answer is universal. The transactional email comparison plays out along the same axis: SES is the wholesale ingredient supplier, Mailgun is the prepared-mise-en-place equivalent, and the right pick depends on what kitchen the engineer already operates in.

Mailgun's 2026 plan structure after the Flex doubling

Mailgun restructured its pricing positioning rather than its plan prices. The Foundation and Scale subscription tiers were not raised; the Flex pay-as-you-go rate doubled. The effect is a deliberate funnel pushing customers from Flex to Foundation, where Mailgun's economics work better.

Basic
$15/mo
10,000 emails included
+$1.80 per 1K overage
Foundation
$35/mo
50,000 emails included
+$1.30 per 1K overage
Scale
$90/mo
100,000 emails + dedicated IP
+$1.10 per 1K overage
Flex (was)
$2/1K
Doubled from $1 in Dec 2025
Now worse than every fixed plan

The crossover math worth knowing: above approximately 17,500 emails per month, Foundation at $35 is cheaper than Flex at $2 per 1,000. Above approximately 67,000 emails per month, Scale at $90 becomes cheaper than Foundation overage rates. Any customer sending more than about 18,000 emails per month should not still be on Flex; Mailgun is essentially telling them so through the pricing structure.

At higher volumes, Mailgun's per-message rate compresses but never reaches SES territory:

Monthly emailsBest Mailgun planMailgun costEffective rate
10,000Basic$15$1.50 per 1,000
25,000Foundation$35$1.40 per 1,000
50,000Foundation$35$0.70 per 1,000
100,000Scale$90$0.90 per 1,000
250,000Scale + overage~$255$1.02 per 1,000
500,000Scale + overage~$530$1.06 per 1,000
1,000,000Custom Enterprise~$700-$1,000$0.70-$1.00 per 1,000

SES at the same volumes is materially cheaper:

Monthly emailsSES baseWith VDMWith 1 dedicated IP
10,000$1$1.70$26.65
50,000$5$8.50$33.45
100,000$10$17$41.95
500,000$50$85$109.95
1,000,000$100$170$194.95
5,000,000$500$850$874.95

The naive comparison at 1 million monthly emails ($100 SES vs roughly $700+ Mailgun Enterprise) shows the headline gap. The realistic comparison adds AWS Business Support at $100+ per month, CloudWatch and Lambda costs at $20-50 per month, and the engineer time to build the operational layer at €300-1,500 per month equivalent. The gap is still real but narrower than the headline numbers imply.

Amazon SES with the line items production deployments actually use

The published $0.10 per 1,000 rate is one line in what a real SES deployment actually pays:

SES line itemRateTypical impact
Base sending$0.10 per 1,000$10/month at 100K, $100/month at 1M
Virtual Deliverability Manager (Standard)$0.07 per 1,000 on topAdds 70% to the base rate
Dedicated IP (managed)$24.95 per IP per monthProduction deployments often use 1-3 IPs
Attachment data fees$0.12 per GBMaterial for image-heavy or HTML-rich mail
SNS notifications~$0.50 per millionModest at low volume
Lambda invocations (bounce/complaint processing)$0.20 per 1M + compute$5-30/month typical
CloudWatch metrics & logsTiered usage-based$10-50/month typical
AWS Business Support$100/month minimumOften necessary for deliverability help
Engineer time to build operational layerVariable50-200 hours initial; 5-15 hours/month ongoing

The line items that surprise most operators are the AWS Business Support fee and the engineer time. Basic AWS Support (free) is inadequate for deliverability issues; AWS Support engineers can route deliverability questions to the SES team, but that routing happens only on paid support tiers. Engineer time is the biggest hidden cost: building the SNS/SQS/Lambda pipeline for bounce notifications, the CloudWatch alerting for sending issues, the IP warmup automation, and the suppression-list management that Mailgun provides built-in collectively represents 50-200 hours of initial engineering work and another 5-15 hours per month of ongoing maintenance.

The developer experience gap

This is where most teams actually decide.

This is where most of the actual decision is made for teams under approximately 1 million monthly emails.

Setting up SES for production sending requires the following steps: configure SPF, DKIM, and DMARC for sending domains; request graduation from the SES sandbox (writing the use-case description that AWS reviews); configure SNS topics for bounce and complaint notifications; create SQS queues to receive those notifications; write Lambda functions to process and route the events; build a suppression list system to handle bounces; configure CloudWatch dashboards and alarms; set up IAM policies for SES access; integrate the AWS SDK into the application. None of these steps is hard for an experienced AWS engineer; collectively they represent several days of work and a non-trivial ongoing maintenance surface.

Setting up Mailgun for production sending requires the following steps: add a sending domain with SPF, DKIM, and DMARC records; obtain an API key from the Mailgun dashboard; call the Mailgun API from the application. The bounce handling, suppression list, retry logic, and webhook delivery are all built in. The dashboard shows what is happening with sends without any additional configuration. Total time from zero to production is hours, not days.

The DX premium is what Mailgun charges for. Whether it is worth paying depends on engineer time on the team and how email infrastructure ranks in the team's list of things it wants to operate. Teams that pick Mailgun usually do so because they would rather spend their engineering capital on product features than on email infrastructure. Teams that pick SES usually do so because they already have deep AWS knowledge and the integration cost is closer to zero for them than for an outside team.

Interactive cost calculator

The calculator below estimates the realistic monthly cost on each provider at your specific volume, including the standard add-ons that production deployments end up using.

Real monthly cost at your volume (2026 pricing)

Amazon SES
Base sending$0
VDM$0
Dedicated IPs$0
Support & ops infra$0
Total$0
Mailgun
Plan base$0
Overage$0
Dedicated IP$0
Total$0
 

SES total does not include the engineering time to build the operational layer (bounce processing, suppression lists, CloudWatch monitoring), which adds €300-1,500/mo equivalent at typical rates. Mailgun includes that operational layer in its platform fee.

Deliverability characteristics

Both providers achieve good deliverability when configured well. The pattern of failure differs.

Amazon SES sits on AWS-owned IP space (multiple ASNs depending on region). The shared pools have generally acceptable reputation but vary by region and ISP. Without dedicated IPs, SES sender reputation is influenced by other tenants in the same pool; this rarely matters for low-volume transactional but can affect deliverability during noisy periods. With dedicated IPs and proper warming, SES delivers inbox placement comparable to most managed ESPs, in the 96-97% range for well-configured production deployments.

Mailgun's shared pools have reputations that vary by tier; the Scale plan's pools are actively managed and generally place well. Mailgun has historically had a "varied" community reputation that includes both delighted developers and frustrated cold-email senders who got their accounts terminated. The platform is strict about prohibited use cases (cold outreach, bulk affiliate marketing, certain regulated content categories), which is good for the legitimate transactional senders sharing the IP pools and bad for any sender who lands on the wrong side of Mailgun's anti-abuse review.

Neither provider matches Postmark's 98.7% inbox placement on the metrics that drive transactional reliability. The trade-off is intentional on both sides: Mailgun and SES serve a broader range of use cases than Postmark, which means they cannot afford to be as strict about what they accept onto their platforms, which means their pool reputation is structurally less pristine. For most production transactional deployments, either provider is good enough; for mission-critical transactional where the last 2 percentage points of inbox placement matter, Postmark or dedicated infrastructure is the better answer.

Field observation: Mailgun Flex migration after the price doubling

An agency client running approximately 30,000 monthly emails on Mailgun Flex saw their bill jump from $30 to $60 between November and December 2025. The migration path was straightforward: upgrade to Foundation at $35/month, which delivers more messages than the previous Flex usage was getting at lower total cost. Total migration effort was about 20 minutes (no application changes; same API). The lesson generalised to several other clients: any Mailgun customer still on Flex above approximately 18,000 monthly emails is overpaying versus the equivalent Foundation cost. Mailgun's December 2025 change was strategic, not arbitrary.

Mailgun for GoHighLevel agencies

One use case where Mailgun clearly wins is GoHighLevel agency SMTP setups. GoHighLevel powers its built-in LC Email on Mailgun infrastructure, and the integration patterns that work best with GHL are the ones Mailgun was designed to support: per-domain SMTP credentials for client isolation, a dashboard showing actual delivery data that GHL's own UI does not surface, and credential management workflows that fit multi-client agency operations.

SES is technically possible to integrate with GoHighLevel via SMTP credentials, but the AWS-side configuration overhead (IAM users, SMTP credential generation per region, lack of per-domain credential isolation in the SES model) makes it impractical for typical agency operators. The result in practice is that GoHighLevel agencies almost universally use Mailgun rather than SES, regardless of the cost premium, because the integration friction with SES exceeds the savings.

For agencies sending more than approximately 500,000 monthly client emails across multiple sub-accounts, the calculus shifts toward dedicated infrastructure (PowerMTA-based managed setups specifically configured for GoHighLevel relay), where per-client isolation can be configured architecturally rather than via credential separation on a shared platform. Below that volume, Mailgun is the practical choice and SES is a worse fit despite being cheaper on per-message basis.

The integration friction itself is the moat. Hard to overstate.

Where dedicated infrastructure beats both

The third option neither provider mentions in their marketing is dedicated infrastructure. At sustained volumes above approximately 1 million monthly transactional emails, dedicated managed infrastructure becomes economically competitive with both providers while offering structural advantages that the managed ESP path cannot match.

The cost equation: a Hetzner EX44 or AX41-NVMe at €40-50 per month, plus 3-5 dedicated IPs at €1-2 each, plus PowerMTA or KumoMTA, plus the operational layer (built in-house or via managed service at €400-1,000 per month). Total monthly cost in the €450-1,100 range handles many millions of transactional emails per month, well below the SES cost at the same volume and far below Mailgun. The trade-off is operational responsibility: dedicated infrastructure requires an operator who knows what to do with full IP reputation control, per-ISP throttling, and the operational dashboard tooling.

The crossover point varies by scenario. For pure transactional traffic where deliverability matters most, dedicated infrastructure starts winning around 1 million monthly. For mixed transactional and marketing traffic where reputation control matters more, the crossover moves earlier. For workloads where development team time is scarce and email infrastructure is not a strategic priority, the crossover never quite arrives because the managed-platform overhead is preferable to the operational responsibility. The decision is workload-specific rather than universal.

Decision matrix by profile

Team profileRecommendationReasoning
Solo developer, <5K monthly, prototype stageMailgun Foundation or ResendMailgun Flex no longer makes sense; Foundation at $35 covers the use case with simpler DX than SES
Early SaaS, 10-50K monthly, no AWS expertiseMailgun Foundation$35/month is acceptable cost; DX advantage saves engineering time worth more than the premium
Mid-stage SaaS, 50-500K monthly, AWS-native stackSES with VDM + dedicated IPEconomics start working hard against Mailgun; team has the AWS depth to build the operational layer
GoHighLevel agency, any volumeMailgun Scale or FoundationGHL integration patterns favour Mailgun; the platform was effectively designed for this use case
High-volume transactional, 500K-2M monthlySES + Postmark for critical paths, or dedicatedSES economics win on bulk; supplement with Postmark for password resets and 2FA where reliability matters
Very high volume, 2M+ monthlyDedicated managed infrastructurePer-message economics on either provider become uncomfortable; reputation control matters more at scale
EU/GDPR-sensitive, any volumeMailgun EU + €10/mo, or SES eu-west regionBoth can serve EU; Mailgun's regional addition is simpler to enable
Cold outreach, any volumeNeitherBoth prohibit cold email in TOS; use dedicated infrastructure with cold-friendly tooling

The pattern that emerges is that volume drives the cost-versus-DX trade-off, but the team's existing AWS familiarity and the specific use case (especially GoHighLevel) often matter more than volume alone. For teams without strong AWS depth, Mailgun's DX premium is usually worth paying up to several hundred thousand monthly messages; above that, the per-message economics tilt the comparison toward SES even with the operational cost included. For teams deeply embedded in AWS, SES is the right answer at almost any volume.

The forgotten third option of dedicated infrastructure becomes relevant above 1 million monthly transactional, and especially above 5 million monthly when the bulk economics make either managed ESP an expensive way to send what should be a low-marginal-cost workload. The managed-infrastructure option exists specifically for the configuration where the operator wants the cost and control of dedicated infrastructure without building the operational capability internally.

H
Henrik Larsen

Email Infrastructure Engineer at Cloud Server for Email. Works on production transactional setups across AWS SES, Mailgun, and dedicated infrastructure. Related comparisons: Postmark vs Amazon SES, self-hosted email vs managed ESP, OVHcloud vs Hetzner for email.