How to Set Up DMARC for Amazon SES and AWS

Configure DMARC for Amazon SES. Covers custom MAIL FROM domains, Easy DKIM, Route 53 DNS setup, and fixing the most common SES DMARC failures.

Last updated: 2026-01-28

Amazon SES is one of the most popular services for sending transactional and marketing email at scale. But out of the box, SES has a configuration that causes DMARC failures for most users: the default MAIL FROM domain is amazonses.com, which breaks SPF alignment with your domain. If you are seeing DMARC failures on SES-sent email, this is almost certainly the reason.

This guide walks you through configuring Amazon SES so that your email passes DMARC, including setting up a custom MAIL FROM domain, enabling DKIM, and adding the DMARC record itself. If you are building email infrastructure with SES, our DMARC for developers guide covers programmatic authentication patterns.

Why SES Fails DMARC by Default

To understand the fix, you need to understand the problem. When SES sends an email on your behalf, two domains are involved:

The "From" domain is what the recipient sees — your domain, like yourcompany.com. This is the domain DMARC evaluates.

The MAIL FROM (envelope sender) domain is used for the SPF check. By default, SES sets this to amazonses.com. SPF passes because Amazon's servers are authorized to send for amazonses.com, but SPF alignment fails because amazonses.com does not match yourcompany.com.

If you have not enabled DKIM either, both SPF alignment and DKIM alignment fail, which means DMARC fails entirely. Even with a p=none policy, these failures show up in your DMARC reports and signal to mail providers that your email is not properly authenticated. For background on how SPF, DKIM, and DMARC interact, read SPF vs DKIM vs DMARC.

The default SES configuration will fail DMARC alignment for SPF. You must set up either a custom MAIL FROM domain (for SPF alignment) or Easy DKIM (for DKIM alignment) — ideally both. Without at least one, your DMARC record will not help your deliverability.

Setting Up a Custom MAIL FROM Domain

A custom MAIL FROM domain replaces amazonses.com with a subdomain of your own domain for the envelope sender. This makes SPF alignment pass because the MAIL FROM domain now matches your "From" domain.

1

Choose your MAIL FROM subdomain

You need a subdomain that is not used for anything else. Common choices are mail.yourcompany.com, bounce.yourcompany.com, or ses.yourcompany.com. The subdomain must not have an existing MX record.

2

Configure the custom MAIL FROM in SES

In the AWS console, go to Amazon SES > Verified identities. Click on your verified domain. Under the Custom MAIL FROM domain section, click Edit and enter your chosen subdomain (for example, mail.yourcompany.com). Choose a behavior for MAIL FROM failures — "Use default MAIL FROM domain" is the safer option while you set things up.

3

Add the MX record to your DNS

SES will tell you to add an MX record for your MAIL FROM subdomain. The record points to SES's feedback servers so bounce notifications reach Amazon. The value depends on your AWS region — for example, in us-east-1, it is feedback-smtp.us-east-1.amazonses.com with priority 10. Add this MX record at your DNS provider.

4

Add the SPF record for the subdomain

You also need a TXT record at your MAIL FROM subdomain with this value: v=spf1 include:amazonses.com ~all. This authorizes SES to send email using your subdomain as the MAIL FROM address. If your root domain also sends through other services, build your main SPF record at spfcreator.com to include all sources. You can generate DKIM records for non-SES services at dkimcreator.com.

5

Verify in the SES console

After adding both DNS records, go back to SES and check the status of your custom MAIL FROM domain. It should show as verified once the DNS records propagate, usually within a few minutes.

Enabling Easy DKIM in SES

Easy DKIM is Amazon's built-in DKIM signing feature. When enabled, SES signs every outgoing email with a DKIM signature tied to your domain. This gives you DKIM alignment for DMARC.

1

Open your domain identity in SES

In the SES console, go to Verified identities and click on your domain. Navigate to the Authentication tab and find the DomainKeys Identified Mail (DKIM) section.

2

Enable Easy DKIM

Click Edit in the DKIM section. Select Easy DKIM and choose a DKIM signing key length (2048-bit is recommended). Enable the "DKIM signatures" toggle, then click Save changes.

3

Publish the CNAME records

SES will generate three CNAME records that you need to add to your DNS. These records point to Amazon-hosted DKIM keys. If your DNS is hosted in Route 53, SES can publish them automatically. Otherwise, copy the CNAME records and add them manually at your DNS provider.

4

Wait for verification

SES will check for the CNAME records and verify DKIM. This usually takes a few minutes but can take up to 72 hours. Once verified, the DKIM status will change to "Successful" and all outgoing emails will be DKIM-signed.

Use both custom MAIL FROM and Easy DKIM

Setting up both gives you the strongest DMARC alignment. If one mechanism has a temporary issue, the other still provides a passing alignment result. This redundancy is especially important for high-volume senders.

Adding Your DMARC Record

With SPF and DKIM configured for SES, you can now add your DMARC record.

If You Use Route 53

If your domain's DNS is hosted in AWS Route 53, adding the record is simple. Go to Route 53 > Hosted zones, click on your domain, and create a new record. Set the record name to _dmarc, the type to TXT, and the value to your DMARC record string. For a monitoring-only start:

v=DMARC1; p=none; rua=mailto:dmarc-reports@yourcompany.com; pct=100;

Set the TTL to 3600 (one hour) and save.

If You Use Another DNS Provider

Add a TXT record at your DNS provider with the name _dmarc and your DMARC record string as the value. For provider-specific instructions, see our guides for GoDaddy, Namecheap, or Cloudflare.

After saving, verify the record at dmarcrecordchecker.com.

Common SES DMARC Failure Causes

Default MAIL FROM Domain (amazonses.com)

This is the number one cause of SES DMARC failures. If you have not set up a custom MAIL FROM domain, the envelope sender is amazonses.com, which will never align with your domain for SPF. Fix this by following the custom MAIL FROM setup steps above.

Easy DKIM Not Enabled or Not Verified

If the CNAME records for Easy DKIM are not published or have not been verified by SES, outgoing emails will not carry a DKIM signature for your domain. Check the DKIM status in your SES identity settings. If it shows "Pending" or "Failed," verify the CNAME records are correctly added at your DNS provider.

Sending from Multiple AWS Regions

If you send email from SES in multiple AWS regions, each region needs its own configuration. The custom MAIL FROM domain and Easy DKIM need to be set up in every region where you send email. A common oversight is configuring everything in us-east-1 but forgetting about eu-west-1.

SPF Record for the Wrong Domain

Remember: the SPF record for your custom MAIL FROM domain goes on the subdomain (like mail.yourcompany.com), not your root domain. Your root domain's SPF record authorizes your regular email services. The MAIL FROM subdomain's SPF record specifically authorizes SES.

Verify your SES email authentication

Check that your SPF, DKIM, and DMARC records are all working with Amazon SES.

Run a Free Check

Monitoring SES Sending Reputation Alongside DMARC

Amazon SES has its own reputation dashboard that tracks bounces, complaints, and sending metrics. DMARC monitoring is a separate but complementary layer. While SES tells you about delivery problems from Amazon's perspective, DMARC reports tell you what receiving mail servers see.

Use both together. If your SES reputation dashboard shows increasing bounce rates, check your DMARC reports to see if authentication failures are contributing. If your DMARC reports show failures from IPs you do not recognize, someone may be spoofing your domain — which is exactly what DMARC is designed to catch.

After running at p=none for two to three weeks with clean reports from SES, move to p=quarantine; pct=25; and gradually tighten. For the full enforcement progression, see our DMARC policy levels guide.

Monitor Your DMARC Record

You've created your DMARC record — now make sure it keeps working. The Email Deliverability Suite watches your SPF, DKIM, DMARC, and MX records daily and alerts you when something breaks.

Never miss a DMARC issue

Monitor your SPF, DKIM, DMARC and MX records daily. Get alerts when something breaks.

Start Monitoring