PrestaShop + Amazon SES SMTP Setup (Cheapest at Scale)
Amazon SES sends 1,000 emails for about 16 cents. A store sending 20,000 emails a month pays roughly $3 where SendGrid's entry plan costs $19.95. The catch is an afternoon of AWS configuration and one gate that stops most people: sandbox mode. This guide covers both.
1. What SES costs, and what it does not do
| Volume per month | Essentials (0–10M) | At $0.16/1,000 |
|---|---|---|
| 5,000 | $0.80 | |
| 20,000 | $3.20 | |
| 100,000 | $16.00 |
Above 10M emails a month the rate drops to $0.14 and then to $0.11 per 1,000. SES also sells Pro and Enterprise plans with a monthly per-account fee ($105 and $500) for dedicated IPs and extra validation; a normal store never needs them. There is no permanently free sending tier, but a new AWS account receives up to $200 in Free Tier credits that can be applied to SES.
What SES is not: it is transactional infrastructure only. There is no campaign builder, no drag-and-drop editor, no contact list. You supply the sending; SES supplies the delivery. Marketing blasts from SES are how accounts get suspended.
2. Check your region first
The classic SES SMTP endpoint is not available in every AWS region. Before you build anything, confirm yours. Regions without the email-smtp. endpoint include:
- Africa (Cape Town)
- Asia Pacific (Hyderabad, Jakarta, Malaysia)
- Canada West (Calgary)
- Europe (Milan, Zurich)
- Israel (Tel Aviv)
- Middle East (Bahrain, UAE)
Those regions send through Mail Manager SMTP instead, which is a different setup. If your store is in Europe, Ireland (eu-west-1) or Frankfurt (eu-central-1) both have the standard endpoint and are the usual choices.
The endpoint format is:
email-smtp.<region>.amazonaws.com
For example, email-smtp.eu-west-1.amazonaws.com.
3. Verify your sending domain
- In the AWS console open Amazon SES → Identities → Create identity.
- Choose Domain and enter your store's domain.
- Enable Easy DKIM with a 2048-bit key.
- SES returns three CNAME records. Add all three at your registrar.
- Return to SES and wait for the identity status to show Verified.
SES also writes the necessary MAIL FROM records when you use Easy DKIM. Do not skip this — an unverified domain in SES cannot send at all, rather than sending to spam.
4. Generate SMTP credentials (not your AWS keys)
This is the step people get wrong. SES SMTP credentials are not your AWS access key and secret key.
- Open Amazon SES → SMTP settings.
- Click Create SMTP credentials. This opens AWS IAM.
- Give the IAM user a name and create it.
- SES shows a SMTP username and SMTP password. Download or copy them now — the password cannot be shown again.
Two details that cause silent failures:
- Credentials are per region. A user created for
eu-west-1does not authenticate againstus-east-1. Create credentials in the region you will send from. - Use the SMTP password, not the IAM secret access key. They look similar and are not interchangeable. IAM secret keys do not work for SMTP.
5. Get out of sandbox mode
New SES accounts are in the sandbox. In the sandbox you can only send to addresses you have individually verified. Real customers will not receive anything — which makes the setup look broken when it is working exactly as designed.
- Open Amazon SES → Account dashboard.
- Find the sandbox notice and click Request production access.
- Fill in: mail type (transactional), website URL, use case description.
- Explain how you handle bounces and complaints, and confirm recipients opted in.
- Submit and wait. AWS reviews these manually, usually within 24 hours.
Describe it accurately: this is order confirmations and account emails for a store whose customers entered their own address at checkout. Requests written to sound like bulk marketing get rejected.
6. Enter the settings in PrestaShop
Go to Advanced Parameters → E-mail.
- Select Set my own SMTP parameters (for advanced users ONLY).
- SMTP server:
email-smtp.<your-region>.amazonaws.com - Username: the SMTP username from step 4.
- Password: the SMTP password from step 4.
- Encryption:
TLS - Port:
587
SES accepts STARTTLS on ports 25, 587 and 2587. Port 25 is blocked outbound by most hosting providers, so 587 is the safe choice. The AWS console lists the full set of ports your region supports.
7. Send the test email
Use Send a test email in the same screen.
- Arrives in the inbox → done.
- "Email address is not verified" → you are still in the sandbox. Finish step 5.
- Authentication failure → the credentials are from a different region, or you used the IAM secret key instead of the SMTP password.
- Connection timeout → your host blocks outbound port 587. Ask them to unblock it, or try port 2587.
8. Stay out of trouble after it works
SES suspends accounts that send to bad addresses. Two habits prevent it:
- Watch the bounce rate. Above roughly 5% SES warns you, then throttles or suspends the account. Most PrestaShop bounces come from customer typos, which the store never validates.
- Never import a purchased list. SES treats a complaint spike from unrecognised recipients as abuse and acts fast.
Related guides
- Which SMTP provider should your store use? — compare SES's real cost against Brevo and SendGrid
- PrestaShop not sending emails? Fix it with SMTP — the diagnosis path before you rebuild
Checklist
- ☐ AWS region confirmed to have the
email-smtp.endpoint - ☐ Sending domain created in SES and shows Verified
- ☐ Three DKIM CNAME records added at the registrar
- ☐ SMTP credentials created in the correct region
- ☐ SMTP username and password stored (password shows once)
- ☐ Production access requested and approved
- ☐
email-smtp.<region>.amazonaws.comentered as SMTP server - ☐ Port 587 with TLS selected
- ☐ Test email received by a real customer-style address
- ☐ Bounce rate monitored in the SES dashboard
FAQ
Does Amazon SES have a free tier? Not a permanent one: sending is metered at about $0.16 per 1,000 emails on the Essentials plan. A new AWS account does receive up to $200 in Free Tier credits, which can cover SES usage for the first months. It is still far cheaper than any plan-based provider at volume — 100,000 emails cost around $16.
Why can my SES test email only reach addresses I verified? Your account is in the sandbox. Request production access from the SES account dashboard; until AWS approves it, SES only delivers to individually verified addresses.
What is the SES SMTP server for PrestaShop? email-smtp.<region>.amazonaws.com, for example email-smtp.eu-west-1.amazonaws.com. The region must match the region where you created the SMTP credentials.
Can I use my AWS secret access key as the SMTP password? No. SES SMTP requires a dedicated SMTP username and password generated from SES → SMTP settings → Create SMTP credentials. IAM secret access keys authenticate APIs, not SMTP.
Is SES available in every AWS region? No. Several newer regions, including Europe (Milan, Zurich), Israel (Tel Aviv), Africa (Cape Town) and Asia Pacific (Jakarta, Malaysia), do not offer the classic email-smtp. endpoint and use Mail Manager SMTP instead. Choose a region that does.
Why is my SES email stuck on "connection timed out"? Your host blocks outbound port 587 or 25. Ask them to unblock it, or use port 2587, which SES also accepts.
Countdown x Bar
Xleft
Jump to Checkout
Accessibility Guard
SOO Agent Gateway
SOO Agent Catalog Tools
SOO Agent SEO Tools
GDPR
