Guide
Email marketing on Amazon SES: the complete picture
Amazon SES sends a million emails for about $100 — often a tenth of what managed email platforms charge. But SES is delivery infrastructure, not a marketing product: no contacts, no campaigns, no automation, no analytics. This guide covers every honest way to close that gap — including building it yourself, self-hosting, key-paste SaaS, and running a control plane inside your own AWS account.
Why SES at all
The economics are hard to argue with
SES charges $0.10 per 1,000 emails and nothing per contact. At meaningful volume, the gap between SES and managed email platforms isn't a discount — it's an order of magnitude. Here's what one million emails a month costs, as of July 2026:
Provider
1M emails / mo
Pricing shape
Amazon SES
≈ $100
$0.10 per 1,000, linear — 100k costs ~$10, 10M costs ~$1,000
Resend
≈ $650+
Volume tier, plus separate contact-based fees for marketing audiences
Mailgun
≈ $1,080
List price at this volume tier
Postmark
$1,200+
Volume-based pricing
Prices are list prices as of July 2026 and change over time — check each provider for current numbers. The structural point holds regardless: SES bills per email sent, with no per-contact fees, so a large, mostly-quiet list costs you nothing until you actually mail it.
The catch
What SES doesn't do
SES is a superb delivery engine, and that's all it tries to be. Everything a marketer would recognize as “the product” is missing by design:
No audience model
SES has no concept of a contact, a list, or a segment. There is nowhere to store subscriber attributes, preferences, or history — you bring your own database.
No campaign tooling
There is no campaign builder, no scheduling, no A/B testing, no send-time controls. SES accepts one API call per message and leaves orchestration to you.
No automation
Welcome series, onboarding drips, re-engagement journeys — none of it exists. Multi-step, behavior-triggered workflows are entirely your problem to build.
No marketing analytics
SES emits raw delivery, bounce, and complaint events. Turning those into open rates, click maps, campaign reports, or deliverability trends requires a pipeline you assemble.
No consent management
Unsubscribe pages, suppression lists, preference centers, and compliance workflows are not provided. Getting these wrong risks your sender reputation — and the law.
And one hurdle: the sandbox
Every new SES account starts sandboxed — verified recipients only, low quotas. You must request production access and convince AWS you handle bounces, complaints, and unsubscribes properly before you can send a single real campaign.
So the real question was never “can SES do email marketing?” It's “what do I put on top of SES?” You have four options.
Your four options
Four ways to put marketing on top of SES
Each of these is a legitimate choice with a real constituency. The differences come down to setup effort, who runs the servers, who holds your AWS credentials, and how deep the automation and analytics go.
Build it yourself
EventBridge + SNS + Lambda + your own database
Total control — every behavior is exactly what you designed.
Setup
Weeks to months: event plumbing across EventBridge, SNS, Lambda, and CloudWatch, plus a contact store, unsubscribe handling, and send orchestration — and the sandbox-exit paperwork.
Who runs servers
You — it's your infrastructure and your application code.
Who holds credentials
Nobody new. Everything stays inside your AWS account.
Automation depth
Whatever you build. Every new workflow is another engineering project.
Analytics
CloudWatch metrics plus whatever dashboards you assemble.
Cost shape
SES pennies, plus significant and recurring engineering time.
Self-hosted tools
Sendy, MailWizz, Listmonk
Low or one-time license cost, with your data on your own box.
Setup
Hours to days: a server, a database, the app itself (PHP for Sendy and MailWizz, a Go binary for Listmonk), SES credentials, and cron jobs.
Who runs servers
You — provisioning, patching, upgrades, and backups are yours forever.
Who holds credentials
Your server stores your SES SMTP or API keys.
Automation depth
Autoresponders and date-based sequences; no behavioral multi-step journeys.
Analytics
Per-campaign opens, clicks, and bounces — the basics.
Cost shape
A one-time or low license fee, plus a server, plus your ongoing admin time.
SaaS that holds your keys
BigMailer, MailBluster
Fastest familiar path — an ESP-style UI on top of SES economics.
Setup
Minutes: create an account and paste in your SES IAM or SMTP credentials.
Who runs servers
The vendor runs everything on their own multi-tenant infrastructure.
Who holds credentials
The vendor. You hand over long-lived IAM or SMTP credentials that can send as you.
Automation depth
Campaigns plus basic sequences; depth varies by tool.
Analytics
Campaign-level basics — opens, clicks, unsubscribes.
Cost shape
A monthly SaaS fee, often tiered by contact count — you pay for stored leads monthly whether you email them or not — on top of SES.
Control plane in your account
SendOps
Full-platform depth — contacts, segments, drips, git templates, analytics — running inside your own AWS account.
Setup
About two minutes: one CloudFormation stack provisions the platform inside your AWS account.
Who runs servers
The stack runs in your account; SendOps ships and maintains the software.
Who holds credentials
Nobody. No pasted keys — access is a scoped IAM role using short-lived STS credentials you can audit and revoke.
Automation depth
SendFlow multi-step behavioral workflows, authored as a DSL or on a visual canvas.
Analytics
Full deliverability and engagement analytics, plus activity and public APIs.
Cost shape
Free plan with unlimited volume and no contact limits; Team at $29/mo. SES stays billed by AWS at $0.10 per 1,000.
Honest summary: build it yourself if email tooling is genuinely your product. Self-host if you enjoy running servers and your automation needs stop at autoresponders. Use a key-paste SaaS if you're comfortable handing a vendor credentials that can send as you. Use SendOps if you want platform depth without giving up your account boundary. One more filter that matters in 2026: the self-hosted and key-paste tools are built around drag-and-drop editors, and drag-and-drop output is opaque state no AI coding agent can read or maintain — on SendOps, segments, workflows, and templates are plain text in git, which is exactly what agents can work with.
A note on Pinpoint
AWS had a native answer. It's shutting down.
Amazon Pinpoint was AWS's own campaign and journey product — segments, campaigns, and multi-step journeys on top of SES-class delivery. It stopped accepting new customers in May 2025, and AWS has announced it shuts down on October 30, 2026. AWS's guidance points senders to SES for delivery — but SES, as covered above, has no campaign layer. As of July 2026, AWS has no native email-marketing product to migrate to.
If you're on Pinpoint today, the migration decision is exactly the four-way choice on this page. The closest architectural successor to “campaigns running inside my AWS account” is an in-account control plane: your segments, campaigns, and journeys move to SendOps, while delivery stays on the SES foundation you already have.
How SendOps does it
A full marketing platform, provisioned inside your AWS account
SendOps takes a fourth path: instead of you shipping data and credentials to a vendor, the platform is provisioned into your AWS account by a CloudFormation stack. Setup takes about two minutes, and every email sends through your own SES at $0.10 per 1,000.
Contacts & SendQL segments
A real audience model with custom attributes, and SendQL — a query language for building segments that read like sentences, not exports.
Broadcasts
One-off campaigns to any segment, scheduled or immediate, with per-broadcast deliverability and engagement reporting.
SendFlow drip workflows
Multi-step, behavior-triggered journeys — welcome series, onboarding, re-engagement — defined in a plain-text DSL or on a visual canvas.
Templates as code
Author in React Email — template source lives in your repository, and SendOps compiles it to SES-native Handlebars on deploy. Edits made in the SendOps editor write back as pull requests, so email changes get code review.
Asset CDN & tracking domains
Hosted images on a CDN and branded click/open tracking domains, so your links carry your name instead of a shared tracker.
Deliverability analytics & APIs
Bounce, complaint, open, and click analytics across campaigns and workflows, with an activity API and public APIs for everything.
Your keys never leave home
You never paste AWS keys into SendOps — there are no stored credentials to leak.
Access is a scoped IAM role provisioned by the CloudFormation stack, assumed with short-lived STS credentials.
Every action is auditable in CloudTrail, and you can revoke access at any time by deleting the stack.
Every email — broadcasts and workflows included — sends through SES in your AWS account, never shared infrastructure.
Built for coding agents, too
Because SendQL segments, SendFlow workflows, and TSX templates are all plain text, a coding agent can operate your email marketing end to end — draft a segment, write a drip workflow, edit a template — with pull requests as the guardrail. Your team reviews email changes the same way it reviews code.
Frequently asked questions
Can I do email marketing with Amazon SES?
Yes — but not with SES alone. Amazon SES is delivery infrastructure: it sends email reliably at $0.10 per 1,000 and reports delivery events, but it has no contact lists, segmentation, campaign builder, automation, or marketing analytics. To run email marketing on SES you add a layer on top: build it yourself, self-host a tool like Sendy or Listmonk, use a SaaS that holds your SES keys like BigMailer, or provision a control plane like SendOps inside your own AWS account.
How much does email marketing on Amazon SES cost?
SES itself costs $0.10 per 1,000 emails, so 1 million emails a month is roughly $100 — versus roughly $650 plus contact fees on Resend, about $1,080 list price on Mailgun, and $1,200 or more on Postmark at the same volume, as of July 2026. On top of SES you pay for the marketing layer: engineering time if you build it, a server and license if you self-host, or a subscription — SendOps has a free plan with unlimited volume and a Team plan at $29 per month.
Do I need to leave the SES sandbox to send marketing email?
Yes. New SES accounts start in a sandbox that only sends to verified addresses with low daily quotas. Before any real campaign you request production access, which means describing your use case to AWS and showing that you handle bounces, complaints, and unsubscribes properly. Approval often comes within a day or two, and a clear, honest request the first time avoids back-and-forth.
What replaced Amazon Pinpoint for email campaigns?
Nothing native to AWS. Pinpoint — AWS's own campaign and journey product — stopped accepting new customers in May 2025 and is scheduled to shut down on October 30, 2026. AWS directs senders to SES for delivery, which means campaigns, journeys, and segments need a new home. Teams migrating off Pinpoint typically choose between self-hosted tools, SaaS platforms that hold their SES keys, or an in-account control plane like SendOps.
Is it safe to give a marketing tool my AWS credentials?
It is a real risk to weigh. Pasting long-lived IAM keys or SMTP credentials into a third-party SaaS means that vendor can send as you indefinitely, and a breach on their side becomes a breach of your sending identity. Prefer role-based access provisioned by CloudFormation: a scoped IAM role using short-lived STS credentials that you can audit in CloudTrail and revoke at any time by deleting the stack. That is the model SendOps uses — it never stores your AWS keys.
What's the fastest way to start email marketing on SES?
Verify your sending domain in SES and request production access, then launch the SendOps CloudFormation stack — setup takes about two minutes and provisions the full platform inside your AWS account. Import contacts, pick a template, and send your first broadcast through your own SES at $0.10 per 1,000 emails. The free plan has no volume or contact limits.
Keep SES economics. Add the marketing platform.
You already picked the cheapest, most reliable way to send email. SendOps adds contacts, segments, broadcasts, drip workflows, git-based templates, and deliverability analytics — provisioned inside your AWS account in about two minutes, without ever holding your keys.
Free plan: unlimited volume, no contact limits. Every email through your own SES.