Amazon SES is one of the lowest-cost and highest-deliverability email delivery services, making it very suitable for email marketing on e-commerce websites. This article records how to use Amazon SES as a mail service in WordPress and configure it through FluentSMTP or WP Mail SMTP. It includes domain name verification, sandbox removal, SMTP user creation, API vs. SMTP explanation, DNS settings, and the complete process.
I. Why Choose Amazon SES?
Amazon SES is one of the lowest-cost and highest-deliverability email delivery services because of several key factors:
- Enterprise-level deliverability
- Extremely low cost ($0.1 / 1000 emails)
- Stable and reliable, very suitable for WordPress + WooCommerce
- Suitable for transactional emails (orders, registrations, password resets)
It is very suitable for e-commerce, plugin sales, member websites, and other types of sites.
II. Complete Steps for Using SES for the First Time
1. Activate Amazon SES
Enter the console: https://console.aws.amazon.com/ses. Recommended region: us-east-1 (N. Virginia).
2. Verify Domain Name (Mandatory)
Path: SES → Verified identities → Create identity
Select: Domain, enter your domain name, for example:
wpzhiku.com
SES will give you 1 TXT (SPF) and 3 CNAME (DKIM) records. Add them to your DNS (Cloudflare / DNSPod / Alibaba Cloud, etc.).
When the verification status changes to:
- Verified
- DKIM Verified
It means the configuration is successful.
3. Request Production Access (Mandatory)
Path: SES → Account dashboard → Sending limits → Request production access. Fill in the purpose (the following English can be used):
I will use Amazon SES for transactional emails on my WordPress & WooCommerce site, including order confirmations, password reset emails, and account notifications. All emails are sent only to users interacting with my site.
Approval usually takes 1–48 hours. Only after the sandbox is removed can you send emails to any email address.
4. Create SMTP User (Recommended Method)
Path: SES → SMTP settings → Create SMTP credentials
Generate:
- SMTP Username
- SMTP Password
These will need to be filled into WordPress later.
III. DNS Configuration (Improving Delivery Rate)
✔ SPF (Mandatory)
v=spf1 include:amazonses.com ~all
✔ DKIM (Already enabled by CNAME automatically)
✔ DMARC (Recommended)
v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com
After these configurations are successful, the trust level of recipient servers in the emails we send can be greatly improved, increasing the probability of emails entering the inbox.
IV. Two SES Connection Methods for FluentSMTP
FluentSMTP supports two ways for SES to work:
✓ Method 1: SMTP (Recommended)
Use “SMTP Host + SMTP Username + SMTP Password.”
Access Key / Secret Key is not required.
Safest, most stable, and most common.
Fill in the WordPress settings:
Host: email-smtp.us-east-1.amazonaws.com
Port: 587
Encryption: TLS
Username: (SMTP Username)
Password: (SMTP Password)
This is the officially recommended method.
✓ Method 2: AWS API (Optional)
Requires filling in:
- AWS Access Key
- AWS Secret Key
- Region
This is the API direct connection mode provided by FluentSMTP.
⚠️ Note:
Do not use the Access Key of your AWS master account!
If you insist on using the API, you need to:
- Create an independent IAM user
- Give minimum permissions (SES sending only)
- Configure FluentSMTP with its Access Key
IAM Policy example:
{
"Effect": "Allow",
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Resource": "*"
}
Summary
After completing the above settings, you can send emails normally in WordPress. As long as the email content does not contain too much spam content or keywords, emails sent using Amazon SES will generally not be placed in the spam folder unless the user has set custom filtering rules.
