Sending Emails in WordPress Using Amazon SES + FluentSMTP

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.

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)

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:

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:

  1. Create an independent IAM user
  2. Give minimum permissions (SES sending only)
  3. 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.

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *