Amazon Simple Email Service, a scalable cloud email sending service. This guide covers the complete email authentication stack for Amazon SES: SPF, DKIM, and DMARC. Each section gives you the exact DNS records, step-by-step instructions, common pitfalls, and how to verify your setup.
Authorize Amazon SES to send email on behalf of your domain by adding the correct SPF include for your SES region.
TXT
@
v=spf1 include:amazonses.com ~all
The include:amazonses.com covers all AWS SES regions.
Go to the AWS Management Console and navigate to the Amazon SES service in your sending region.
Under Configuration > Verified identities, click "Create identity" and add your domain. SES will provide DNS records.
Check if you already have an SPF record.
dig TXT yourdomain.com +short | grep spfAdd include:amazonses.com to your existing SPF record.
v=spf1 include:amazonses.com ~allIn SES, set a custom MAIL FROM domain (e.g., mail.yourdomain.com). This improves SPF alignment for DMARC. Add the SPF record to the MAIL FROM subdomain as well.
mail.yourdomain.com TXT "v=spf1 include:amazonses.com ~all"v=spf1 include:_spf.google.com ~allv=spf1 include:_spf.google.com include:amazonses.com ~allAdd include:amazonses.com to your SPF record. For DMARC alignment, also configure a custom MAIL FROM domain in SES and add the SPF record there.
No. The include:amazonses.com covers all AWS SES regions. One include is sufficient.
A custom MAIL FROM domain (e.g., mail.yourdomain.com) replaces the default amazonses.com envelope sender. This is required for SPF alignment under DMARC.
Enable Easy DKIM in Amazon SES by publishing three CNAME records that allow AWS to sign outgoing email with your domain.
CNAME
abc123._domainkey
abc123.dkim.amazonses.com
SES provides three unique CNAME records. The exact values are generated in your SES console.
Navigate to Amazon SES in your sending region.
Under Verified identities, select your domain. Under the Authentication tab, find the DKIM section.
SES will generate three CNAME records for DKIM. Easy DKIM uses 2048-bit keys by default.
Add all three CNAME records to your DNS provider.
abc123._domainkey.yourdomain.com CNAME abc123.dkim.amazonses.com
def456._domainkey.yourdomain.com CNAME def456.dkim.amazonses.com
ghi789._domainkey.yourdomain.com CNAME ghi789.dkim.amazonses.comSES will automatically verify the CNAME records. The DKIM status will change to "Verified" once propagation is complete, typically within 72 hours.
Amazon SES Easy DKIM requires three CNAME records. All three must be published in your DNS for DKIM to activate.
Yes. Easy DKIM keys are rotated automatically by AWS. The CNAME records point to AWS-managed DNS, so no DNS updates are needed.
Yes. SES supports "Bring Your Own DKIM" (BYODKIM) where you provide your own key pair. However, Easy DKIM is simpler and recommended for most users.
Publish a DMARC record to protect your domain when using Amazon SES, ensuring proper alignment of SPF and DKIM.
TXT
_dmarc
v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1
For DMARC to fully pass, configure a custom MAIL FROM domain (for SPF alignment) and Easy DKIM.
Set up Easy DKIM with the three CNAME records. This gives you DKIM alignment.
In SES, configure a custom MAIL FROM domain (e.g., mail.yourdomain.com) with its own SPF record and MX record. This gives you SPF alignment.
Add a TXT record at _dmarc.yourdomain.com.
v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1Send test emails via SES and check headers for dmarc=pass with both SPF and DKIM alignment.
Move from p=none to p=quarantine to p=reject over several weeks.
By default, SES uses amazonses.com as the MAIL FROM (envelope sender), which does not align with your domain. Set a custom MAIL FROM domain in SES to fix this.
Yes. DMARC requires either SPF or DKIM to pass and align. Easy DKIM provides DKIM alignment, which is sufficient. However, setting up both SPF and DKIM alignment is best practice.
No. DMARC is a per-domain DNS record, not per-region. One DMARC record on your domain covers all email sent from any SES region.
Once your SPF, DKIM, and DMARC records are in place, run a full domain scan to confirm everything is configured correctly. DNS changes typically propagate within minutes but can take up to 48 hours.