Amazon SES Review 2026

AWS's pay-per-message email API for transactional, bulk and inbound mail

Research-based score 3.9/5 DevMixa score
Pricing
Pay as you go
Platforms
Web
Best for
Developers and AWS-based startups sending high volumes of transactional email who want the lowest per-email cost and full API control
Not ideal for
Marketing teams that need a visual editor, list management and hands-on support without writing code
Developer
Amazon Web Services (Amazon.com, Inc.), Seattle, Washington, USA
Founded
2011

Our verdict

3.9out of 5

Amazon SES is the cheapest serious way to send email at volume, as long as you switch new accounts to the $0.10 a la carte rate or genuinely use the Essentials dashboard. It rewards teams comfortable with AWS and punishes those who skip bounce handling. Marketers without developer help should look at SendGrid, Mailgun or a campaign platform instead.

  • Ease of use2.9
  • Features4.3
  • Value for money4.5
  • Support3.6

How this score works: the DevMixa score is research-based — we compare official pricing, features, documentation, support options, security and data policies, and public user feedback against other tools in the same category. It is not a hands-on test; tools we test ourselves are marked “Tested”.

What is Amazon SES?

Since 21 July 2026, a brand-new Amazon SES account no longer starts on the famous ten-cent rate. AWS now drops new accounts (and dormant ones) onto a plan called Essentials, billed at $0.16 for every thousand messages, while the old $0.10 pay-as-you-go rate still exists but has to be chosen. That is why this review opens with Amazon SES pricing per 1000 emails: get the plan wrong and a 10 lakh email month costs $160 instead of $100. Then come free credits, the sandbox, Mumbai SMTP, the rules that pause accounts, and SendGrid and Mailgun.

Amazon SES pricing per 1000 emails after the July 2026 plans

The official pricing page now lists four ways to pay. Rates below are per 1,000 outbound emails for the first 10 million each month, and the fixed fee is charged per account, per region.

OptionPer 1,000 emails (0 to 10M)10M to 100MAbove 100MFixed monthly feeWhat is bundled
A la carte$0.10$0.10$0.10NoneSending only; every extra billed separately
Essentials (default for new accounts)$0.16$0.14$0.11NoneSES deliverability dashboard (VDM)
Pro$0.22$0.17$0.12$1051 managed dedicated IP, 2,500 address validations, inbox placement data
Enterprise$0.23$0.18$0.13$50012 managed IPs, 5,000 validations, global endpoints, tenant isolation

Attachments add $0.12 per GB on every option. Receiving mail costs $0.10 per 1,000 messages plus $0.09 per 1,000 chunks of 256 KB, and Mail Manager processing is $0.15 per 1,000.

AWS's own example of 250,000 emails on Essentials comes to $40.96, mostly sending. On a la carte the same volume is $25 plus attachments. Essentials only pays off if you want Virtual Deliverability Manager, which costs $0.07 per 1,000 on its own, taking a la carte to $0.17.

Moving a fresh account from Essentials back to $0.10

The setting lives under Pricing plans in the SES console, and AWS says you can upgrade or drop to a la carte at any time. Accounts that were placed on Essentials by default, without picking it, see the downgrade take effect immediately. From the command line, an engineer at Classmethod documented that aws sesv2 put-account-pricing-attributes --plan NONE switches a region back, and that the change applied at once. Plans are tracked separately for each region, so repeat this in every region you send from. Any account-region pair with metered SES activity since 1 June 2025 was left on a la carte and needs no action.

What the Amazon SES free tier means now that AWS uses credits

For years the answer was simple: 3,000 free message charges a month for the first 12 months. That wording still sits in the SES FAQ, but the pricing page tells a different story for accounts opened from 15 July 2025. Those customers get AWS Free Tier credits (up to $200, made of $100 at sign-up and up to $100 for starter activities) that can be spent on eligible services, SES included. The pricing page itself no longer mentions the 3,000 figure at all.

In practice, $100 of credit buys a million emails at the a la carte rate. The catch is time: on the Free account plan the credits stop after six months, and on the Paid plan unused balance expires 12 months after account creation. Credit does not lift the sandbox either.

Amazon SES sandbox mode removal: what the request asks for

Every new account begins in the SES sandbox in each region separately. The limits, according to the developer guide, are 200 messages in any 24 hours, one message per second, and delivery only to verified identities or the mailbox simulator.

Leaving the sandbox is a form, not a switch. In the console, open Account dashboard, follow the banner to the Get set up page and choose Request production access. AWS wants your mail type (marketing or transactional), a website URL, up to four extra contact addresses, and a tick confirming that you only email people who asked for it and that you process bounces and complaints. The same request can go through the CLI with aws sesv2 put-account-details --production-access-enabled. AWS Support gives an initial response within 96 hours, sometimes longer, and the guide notes that verifying a domain before applying tends to speed things up.

After approval you still verify every From and Return-Path identity, and quotas can be raised later by request.

Amazon SES SMTP setup on ap-south-1

Plugging SES into WordPress, Laravel or a CRM over SMTP takes four steps:

  • In the SES console, open SMTP settings and choose Create SMTP credentials. This opens IAM and creates a dedicated user.
  • Copy or download the username and password at once; the password cannot be shown again. These SES SMTP credentials are not your AWS secret key, and they only work in the region where you made them.
  • Point your app at email-smtp.ap-south-1.amazonaws.com. Use port 587 or 2587 with STARTTLS, or 465 or 2465 with TLS Wrapper. Every SES SMTP connection must use TLS.
  • Avoid port 25 from EC2. Amazon throttles it by default unless AWS lifts the limit, and it shows up as timeouts.

For code, the AWS SDKs call the SES v2 API with signed requests. A common aws lambda email pattern: an order event triggers a function that calls SendEmail, with no server running. Messages can be 40 MB, with up to 50 recipients each.

Why Mumbai is the practical SES region for Indian senders

AWS's endpoint table lists Asia Pacific (Mumbai), ap-south-1, with an API endpoint, an SMTP endpoint and an inbound endpoint for receiving mail. Hyderabad (ap-south-2) has the API but no SMTP endpoint in the same table, and it is not on the list of 22 regions that receive email. For most Indian businesses that settles it: send from Mumbai and keep identities, suppression lists and sending events in an Indian region. The July 2026 plans cover every SES region except UAE and Bahrain.

Accounts with an Indian billing address are invoiced by AWS India in rupees with GST, but SES rates are quoted only in dollars, so the rupee bill moves with the exchange rate.

The bounce and complaint numbers that pause an SES account

AWS's enforcement FAQ asks you to keep bounces under 2% and complaints under 0.1%. A bounce rate of 5% puts the account under review, and 10% can pause sending. For complaints the review line is 0.1% and the pause line is 0.5%. The service terms also let AWS block mail if your bounce address stops accepting messages.

Good bounce and complaint handling therefore needs to be wired in on day one. Two tools do the job:

  • SES SNS notifications, set per identity, push a JSON message to an SNS topic for each bounce, complaint or delivery. A small Lambda can then mark the address as dead in your database.
  • SES configuration sets group rules that you attach to a message or set as an identity's default. Their event destinations publish sends, opens, clicks, bounces and complaints to SNS, CloudWatch, Firehose or EventBridge, and they can tie a message to a dedicated IP pool.

If mail is not arriving, check in this order: is the region still in the sandbox, is the recipient on the account suppression list, are SPF, DKIM and DMARC records published for your domain, and does the dashboard show a reputation warning? Virtual Deliverability Manager, which Essentials includes, shows delivery and engagement by mailbox provider and flags DNS problems through its advisor.

Paying for your own IP: $24.95 standard or a managed pool

By default SES sends from shared addresses. SES dedicated IPs come in two forms. Standard leases cost $24.95 per IP per month, and you plan warm-up and pool sizing yourself. Managed dedicated IPs cost $15 a month per account plus $0.08 per 1,000 emails up to 10 million (falling to $0.04 and then $0.02 at higher bands), and AWS handles warm-up and scaling. Bringing your own range needs 256 addresses at $24.95 each, about $6,387 a month.

Below a few lakh emails a month, a dedicated IP rarely helps, because mailbox providers need steady volume to trust an address.

Amazon SES vs SendGrid and Mailgun on a 100,000-email month

Take a startup sending 1 lakh transactional emails a month. On SES that is $10 at the a la carte rate or $16 on Essentials. Twilio SendGrid gives a 60-day trial at 100 emails a day, then Essentials from $19.95 for 50,000 ($34.95 at 100,000) and Pro from $89.95 with one dedicated IP. Mailgun's Scale plan is $90 for 100,000, and its free plan allows 100 emails a day.

The extra money buys comfort: dashboards built for non-AWS people, event logs with retention, template editors and support inside paid plans. On SES you assemble those from configuration sets, CloudWatch and your own code, and human help needs a paid AWS Support plan. If nobody on the team wants to touch IAM, SendGrid or Mailgun will save hours worth more than the price gap.

Newsletters on SES: cheap sending, missing campaign tools

AWS lists marketing campaigns as a supported use, and the mail type field in the production request accepts marketing. What is missing is the layer marketers expect: no list manager, signup forms or campaign scheduler. SES email templates are stored through the API with tags such as {{name}} (up to 20,000 per region, 500 KB each), and SendBulkEmail personalises up to 50 destinations per call. That suits a developer building a digest. Teams wanting a campaign UI run Sendy or listmonk on top of SES, or pick Brevo or Mailchimp.

What AWS does with the mail you send

Section 15 of the AWS Service Terms allows AWS or its providers to store and scan SES messages and their contents to block spam, phishing and malware. No retention period is given. The terms also say AWS is not the sender under CAN-SPAM and similar laws, so consent, unsubscribe links and Indian rules such as the DPDP Act are your job. Received mail written to S3 can be encrypted with AWS KMS.

A first week with SES, step by step

  • Pick ap-south-1 and set the pricing plan you want before sending a single message.
  • Verify your domain with Easy DKIM, add SPF and a DMARC record, and keep the domain among your verified identities.
  • Create a configuration set with an SNS destination for bounces and complaints, and subscribe a Lambda or webhook to it.
  • Test with the mailbox simulator, then file the production request explaining how people join your list.
  • Set an AWS Budgets alert so a runaway loop cannot send a crore emails unnoticed.

Skip the bounce wiring or the plan check, and the low price stops being the main thing you notice.

Amazon SES key features

  • Outbound email via SES v2 API and SMTP (TLS on ports 587, 2587, 465, 2465)
  • Inbound email receiving with spam, virus, SPF and DKIM verdicts
  • Stored and inline email templates with SendBulkEmail
  • Configuration sets with event publishing to SNS, CloudWatch, Firehose, EventBridge
  • Bounce, complaint and delivery notifications via Amazon SNS
  • Virtual Deliverability Manager dashboard and advisor
  • Standard, managed and BYOIP dedicated IPs with pools
  • Email address validation (API and auto validation)
  • Mail Manager for inbound routing, archiving and security add-ons
  • Global endpoints for multi-region sending (Enterprise or add-on)
  • Account-level suppression list
  • Mumbai (ap-south-1) API, SMTP and inbound endpoints

✓ Verified on · source

Amazon SES specifications

API
API styleREST, Webhooks
AuthenticationHMAC signature
Official SDKsAWS SDKs for Python (boto3), JavaScript/Node.js, Java, Go, .NET, PHP, Ruby, C++, plus AWS CLI; SMTP for any language
Free tierCovered by AWS Free Tier credits (up to $200) for accounts opened since 15 Jul 2025; sandbox limited to 200 emails per 24 hours
Rate limitsSandbox: 200 emails per 24 hours, 1 email/second; production quotas set per account and adjustable; 50 recipients per message; 40 MB max message (v2 API/SMTP)
Sandbox / test modeYes
SaaS / Web App
Built forDevelopers, Small teams, Enterprise
Support channelsCommunity, Email, Phone, Dedicated manager
Mobile appNo

✓ Verified on · source

Data & privacy

Data stored inChoose any SES region, including Asia Pacific (Mumbai) ap-south-1

✓ Verified on · source

Amazon SES pricing

PlanPriceWhat you get
A la carte$0.10 per 1,000 emailsNo monthly fee; $0.12/GB attachments; add-ons such as VDM ($0.07 per 1,000) billed separately
Essentials$0.16 per 1,000 emailsDefault for new accounts from 21 Jul 2026; $0.14 for 10M to 100M, $0.11 above 100M; includes SES deliverability (VDM); no fixed fee
Pro$105/mo + $0.22 per 1,000 emailsPer account per region; 1 managed dedicated IP, 2,500 API validations, global deliverability; $0.17 and $0.12 at higher tiers
Enterprise$500/mo + $0.23 per 1,000 emails12 managed IPs, 5,000 validations, global endpoints, tenants, open ingress endpoint; $0.18 and $0.13 at higher tiers
Dedicated IP (standard)$24.95/mo per IPSelf-managed warm-up; managed dedicated IPs are $15/mo per account plus $0.08 per 1,000 emails up to 10M
Inbound email$0.10 per 1,000 emailsPlus $0.09 per 1,000 incoming 256 KB chunks

✓ Verified on · source

Amazon SES pros & cons

Pros

  • $0.10 per 1,000 emails on a la carte is among the lowest rates for a major provider
  • No monthly minimum on a la carte or Essentials
  • Mumbai region offers sending, SMTP and receiving inside India
  • Deep integration with Lambda, SNS, S3 and the rest of AWS
  • Scales from a hobby app to billions of emails a month

Cons

  • New accounts default to the pricier $0.16 Essentials plan unless switched
  • Sandbox exit is a manual review in each region, and AWS's first reply can take up to 96 hours
  • No campaign editor, list manager or signup forms for marketers
  • Human support needs a paid AWS Support plan
  • Free tier is now AWS credits with a time limit, not a standing SES allowance

Amazon SES user reviews

No user reviews yet. Used Amazon SES? Share your experience to help others.

Write a review of Amazon SES

Your rating

Amazon SES FAQ

What is Amazon SES?

Amazon Simple Email Service is AWS's cloud email API for sending and receiving mail, launched in January 2011. Apps call it over HTTPS or SMTP to send transactional mail such as OTPs and invoices, as well as newsletters. It also handles inbound mail and deliverability reporting.

How much does Amazon SES cost per 1000 emails?

On a la carte pricing it is $0.10 per 1,000 outbound emails plus $0.12 per GB of attachments. New accounts default to the Essentials plan at $0.16 per 1,000 for the first 10 million, which includes the deliverability dashboard. Pro and Enterprise cost more per email and add fixed fees of $105 and $500 per region.

Is Amazon SES free?

Not permanently. The SES FAQ still mentions 3,000 free message charges a month for 12 months, but accounts opened since 15 July 2025 instead get AWS Free Tier credits of up to $200 that can be spent on SES. Credits end after six months on the Free plan and 12 months on the Paid plan.

How do I move out of the SES sandbox?

Open Account dashboard in the SES console, go to the Get set up page and choose Request production access. Give your mail type, website URL and contacts, and confirm you handle bounces and complaints. AWS Support sends a first response within 96 hours, and you must repeat the request in each region.

Is Amazon SES good for marketing emails?

It can send them cheaply and AWS supports marketing use, but it has no list manager, signup forms or visual campaign editor. You either build those yourself, run a tool like Sendy or listmonk on top, or choose a marketing platform. Complaint rates above 0.1% trigger an account review, so list hygiene matters.

How does Amazon SES compare with Mailgun?

SES costs $10 to $16 for 100,000 emails depending on plan, while Mailgun's Scale plan is $90 a month for that volume. Mailgun offers a friendlier dashboard, built-in log retention and support on paid plans. SES suits teams already on AWS who can wire up events and IAM themselves.

Which AWS region is best for SES in India?

Asia Pacific (Mumbai), ap-south-1, is the practical choice. It has API, SMTP and inbound endpoints, while Hyderabad (ap-south-2) has no SMTP endpoint and does not receive mail. Sending from Mumbai also keeps identities and logs in India.

What are the best Amazon SES alternatives?

Twilio SendGrid and Mailgun are the closest developer-focused alternatives, with simpler dashboards and included support at higher prices. Postmark is popular for transactional mail, and Brevo or Mailchimp suit marketing teams who want campaign tools. Pick based on whether price or ease matters more.

Why is Amazon SES not delivering emails?

The common causes are an account still in the sandbox, recipients on the suppression list, missing SPF, DKIM or DMARC records, or a paused account after high bounce or complaint rates. Port 25 throttling on EC2 also causes SMTP timeouts. Check the reputation dashboard and your SNS bounce events first.

Who should use Amazon SES?

Developers and startups already running on AWS who send high volumes of transactional mail and want the lowest per-email price. It also fits SaaS products needing inbound mail processing. Non-technical marketing teams will find a dedicated email platform easier.

Amazon SES alternatives

See all 5 Amazon SES alternatives →