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 |
Essentials charges $0.16 per 1,000 emails for the first 10 million per month, $0.14 for the next tier up to 100 million, and $0.11 above that. Rates apply marginally. Attachment data and optional features can cost extra. Eligible new AWS customers may receive Free Tier credits; check your account and current pricing.
SES supports transactional and permission-based marketing email. It is not a complete campaign-editing application. You are responsible for consent, unsubscribe handling where required, and monitoring bounces and complaints.
2. Check your region first
Choose a region from the official SES SMTP endpoint list. For example, Ireland uses email-smtp.eu-west-1.amazonaws.com. Domain verification, production access, quotas and SMTP credentials are region-specific. Do not substitute a Mail Manager endpoint into these settings.
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.
Easy DKIM configures message signing; it does not publish custom MAIL FROM DNS records. SES uses a default MAIL FROM domain unless you configure a custom one. For custom MAIL FROM, publish the MX and SPF TXT records SES provides at your DNS host. Verify the sending identity in your chosen region.
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 → check the endpoint, DNS resolution and outbound firewall rules. 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. Elevated bounce rates can trigger an account review or sending restrictions; monitor the thresholds in current SES documentation. A syntactically valid address can still be nonexistent or unable to receive mail.
- 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? Eligible new AWS accounts may receive Free Tier credits. Before credits, 100,000 emails on the first Essentials volume tier cost $16 in base sending charges; additional charges may apply. Check current AWS pricing and your selected plan.
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? Availability varies by region. Use the official SES SMTP endpoint list and select matching regional credentials.
Why is my SES email stuck on "connection timed out"? Possible causes include blocked outbound ports, an incorrect endpoint, or network/DNS failures. Ask them to unblock it, or use port 2587, which SES also accepts.
Compare before you commit
The SMTP provider comparison shows what the other options cost at the same order volume.
Not sure SMTP is your problem yet? Start with PrestaShop not sending emails.
Countdown x Bar
Xleft
Jump to Checkout
Accessibility Guard
SOO Agent Gateway
SOO Agent Catalog Tools
SOO Agent SEO Tools
GDPR
