Guide · AWS SES
How to set up AWS SES for email marketing
Verify a sending domain, turn on DKIM, request production access, then connect a marketing layer on top. The console work takes about 30 minutes; production approval is a 24–48 hour wait. This guide walks every step, and the part most guides skip: what SES doesn't do.
By BYOMailer Team · Updated 2026-07-03
Is AWS SES right for marketing email?
AWS SES is a raw email-sending service: you hand it a message and a recipient, it delivers and reports bounces, complaints, opens and clicks. It costs $0.10 per 1,000 emails with no per-contact fee, which is why it's the cheapest way to send at volume. It's the right base for marketing email when your list is growing, you want to own your sender reputation, and you're comfortable adding a campaign layer on top. It's the wrong choice if you want a finished drag-and-drop marketing suite with zero infrastructure decisions.
How to create and verify a sending domain in SES
In the SES console, pick a region close to most of your recipients, then open Verified identities → Create identity → Domain and enter your sending domain. Verified identities and quotas are region-specific, so choose the region you'll stay in. Never use root AWS credentials; create a dedicated IAM user with send-only SES permissions.
Screenshot to add
SES console: Create identity → Domain, with the region selector visible.
How to set up DKIM, SPF and DMARC on SES
Turn on Easy DKIM with RSA-2048 (the 2026 default) during domain setup. SES generates three CNAME records. Add them to your DNS host, and verification usually flips to Verified within 5–15 minutes. Add an SPF record that includes amazonses.com, then publish a DMARC policy (v=DMARC1; p=none to start, tightening to quarantine once alignment is clean). All three together are what keeps you out of spam folders and protects your domain from spoofing.
Screenshot to add
The three DKIM CNAME records SES generates, and the same records added at the DNS host.
How to get out of the SES sandbox (production access)
Every new SES account starts in the sandbox: 200 emails per 24 hours, one email per second, and delivery only to addresses you've verified. To send to real lists, request production access from Account dashboard → Request production access. Approval typically lands in 24–48 hours and comes faster when your request states your use case, that your list is opt-in, your expected volume, and how you handle bounces and unsubscribes.
Screenshot to add
The production-access request form, filled in with the use-case wording that got approved.
What are SES sending limits and how do you raise them?
After production access, SES starts you at a daily quota and a per-second send rate that it raises automatically as you build a clean sending history of low bounce and complaint rates. You can also request an increase directly. Keep your bounce rate under 5% and complaint rate under 0.1%; SES pauses accounts that cross those thresholds, so warm up gradually rather than blasting a cold list on day one.
How much does SES actually cost per month?
SES is $0.10 per 1,000 emails, billed on what you send, not on how many contacts you store. A list of 10,000 contacts emailed four times a month is 40,000 sends, or $4.00. The same list on a contact-priced ESP runs $130–375/month. That gap is the whole reason to bring your own SES. See the full breakdown on the AWS SES cost page.
SES sends email, so how do you actually run campaigns on it?
This is the step most SES guides skip. SES is infrastructure: it has no lists, no campaign editor, no sequences, no unsubscribe page, no reporting dashboard. Once your domain is verified and you're out of the sandbox, you still need a marketing layer. You can build one, or connect BYOMailer, which runs on your own SES account. You keep the $0.10-per-1,000 sending cost and own your sender reputation, while getting newsletters, sequences, tags, A/B testing and deliverability tracking on top.
Frequently asked questions
Can I do email marketing with only AWS SES?
Not on its own. SES sends email and reports bounces, complaints, opens and clicks, but it has no lists, no campaign editor, no sequences, no unsubscribe handling and no reporting UI. You either build that layer yourself or connect a marketing platform (like BYOMailer) that runs on top of your SES account.
How long does SES production access take?
AWS typically reviews a production-access request within 24–48 hours. Approval is faster when your request clearly states your use case, list source (opt-in), expected volume, and how you handle bounces and unsubscribes.
Is AWS SES cheaper than a hosted ESP?
For sending, yes. SES is $0.10 per 1,000 emails with no per-contact fee. Hosted ESPs bill on stored contacts, so their cost climbs as your list grows even if your send volume does not. The trade-off is that SES gives you raw infrastructure; you add the marketing layer.
Which AWS region should I choose for SES?
Pick a region close to most of your recipients (for example a US region for a US list, an EU region for an EU list). Verified identities and sending quotas are region-specific, so plan to stay in one region.
Keep exploring