XiaTools

Connecting Amazon SES Custom Domain Verification via DNS Aliases

By Rohit, founder of XiaTools · Updated 15 Oct 2026

Connecting Amazon SES custom domain verification via DNS aliases requires precise record setup to prove domain ownership and authenticate your outbound mail streams. When you configure Amazon Simple Email Service (SES) with a custom domain, you bypass the default sandbox limitations, improve email deliverability, and ensure that your emails display your brand in the sender address rather than an generic AWS subdomain. This guide walks you through the entire configuration lifecycle, from generating the required records in the AWS console to publishing them at your DNS provider.

Before you begin the implementation, you should verify your DNS propagation health. You can use the CNAME Lookup tool on XiaTools to instantly check whether your validation CNAME records are publicly accessible and resolving to the correct AWS endpoints across global DNS resolvers.

Understanding Amazon SES Domain Verification Requirements

Amazon SES requires two primary cryptographic and routing mechanisms when you set up a custom sending domain: DomainKeys Identified Mail (DKIM) and Domain-based Message Authentication, Reporting, and Conformance (DMARC), alongside the initial domain identity validation. AWS uses CNAME (Canonical Name) records for Easy DKIM verification. Instead of managing complex public-private key pairs manually, AWS generates three unique CNAME tokens that you must publish in your zone file.

When a receiving mail server gets an email sent from your domain, it queries your DNS records to fetch the public DKIM key corresponding to the token provided in the email header. It then cryptographically validates the digital signature attached to the message. If the CNAME alias is misconfigured, broken, or missing, the validation fails, leading to lowered inbox placement or outright rejection by strict email receivers like Google and Microsoft.

The Anatomy of SES CNAME Records

AWS generates records that look specific to your region and identity. The format generally follows this exact syntax structure:

  • Name (Host): [Unique-Token]._domainkey.example.com
  • Type: CNAME
  • Value (Target): [Unique-Token].dkim.amazonses.com

It is critical to copy these values directly from the AWS SES console without truncating the trailing dots or appending unnecessary domain roots if your DNS hosting provider automatically appends them.

Step-by-Step Implementation Guide

Follow these sequential steps to configure and verify your custom domain in Amazon SES using DNS aliases.

Step 1: Initiate Domain Verification in the AWS Console

  1. Log into your AWS Management Console and navigate to the Amazon SES dashboard.
  2. In the navigation menu under Configuration, click on Identities, then click the Create identity button.
  3. Select Domain as the identity type.
  4. Enter your root domain name (e.g., example.com).
  5. Under Identity configuration, choose Custom for DKIM settings and select Easy DKIM with an RSA key length of 2048-bit (recommended for maximum security).
  6. Expand the Advanced DKIM settings if you need custom selectors, then click Create identity.

Once created, AWS will present you with a screen containing your domain verification status and a set of three CNAME records for DKIM, alongside a TXT record if you opted for standard domain verification.

Step 2: Publish DNS Records at Your DNS Provider

Log into your DNS hosting provider (such as Cloudflare, Route 53, GoDaddy, or Namecheap). Note that menu paths vary slightly by provider, but you will generally look for a section labeled DNS Management, DNS Records, or Zone Editor.

Create three new CNAME records using the exact strings provided by AWS. Here is a practical example of how your records should look in your zone file:

Type Host / Name Value / Target TTL
CNAME abcdef123456._domainkey.example.com abcdef123456.dkim.amazonses.com Auto / 3600
CNAME ghijkl789012._domainkey.example.com ghijkl789012.dkim.amazonses.com Auto / 3600
CNAME mnopqr345678._domainkey.example.com mnopqr345678.dkim.amazonses.com Auto / 3600

Note: Do not include the root domain name in the Host field if your DNS provider automatically appends your zone name. For example, enter just abcdef123456._domainkey instead of abcdef123456._domainkey.example.com if your interface appends the domain automatically.

Step 3: Validate Propagation and Status

After publishing the records, DNS propagation can take anywhere from a few seconds to 24 hours depending on your TTL settings and global provider caches. You can use command-line utilities to check your records before returning to the AWS console.

Run the following command in your terminal to query your CNAME record using dig:

dig CNAME abcdef123456._domainkey.example.com +short

Expected Output:

abcdef123456.dkim.amazonses.com.

If you are using Windows PowerShell, you can check the record using Resolve-DnsName:

Resolve-DnsName -Name abcdef123456._domainkey.example.com -Type CNAME

Once the command returns the expected AWS target endpoint, return to the AWS SES console. The verification status for your domain identity will automatically transition from Pending to Verified.

Advanced Mail From Domain Configuration (MX & TXT)

To complete your email authentication setup and ensure your Return-Path address matches your custom domain, you should also configure a custom MAIL FROM domain.

  1. In your SES Identity details page, scroll down to the MAIL FROM domain section and click Configure MAIL FROM domain.
  2. Enter a subdomain, such as mail.example.com.
  3. AWS will generate an MX record and a TXT record for SPF validation.

Add these records to your DNS provider:

  • MX Record: Host: mail.example.com, Value: feedback-smtp.us-east-1.amazonses.com (use your specific AWS region), Priority: 10
  • TXT Record: Host: mail.example.com, Value: v=spf1 include:amazonses.com ~all

Common Mistakes and How to Fix Them

Even experienced engineers occasionally run into configuration pitfalls when setting up SES domain aliases. Here are the most frequent issues and how to resolve them:

  • Double Domain Appending: Many DNS management panels automatically append your root domain to the Host field. If you input abcdef123456._domainkey.example.com, your DNS provider might actually publish abcdef123456._domainkey.example.com.example.com, causing validation to fail. Always check your provider's formatting rules.
  • Enabling Cloudflare Proxy (Orange Cloud): If you host your DNS on Cloudflare and leave the proxy status set to "Proxied" (orange cloud) for your CNAME aliases, AWS will not be able to resolve the DNS queries directly during validation. Ensure all SES CNAME records are set to DNS Only (gray cloud).
  • Mismatched AWS Regions: Ensure you are checking the verification status in the exact same AWS region where you created the identity. SES domain identities are region-specific.

Configuration Checklist

Review this quick checklist before testing your email delivery:

  • Created a custom domain identity in the correct AWS region.
  • Published all three Easy DKIM CNAME records without syntax errors.
  • Disabled proxy services (e.g., Cloudflare gray cloud) on all validation CNAMEs.
  • Verified DNS propagation using command-line tools or online lookups.
  • Configured the custom MAIL FROM domain with proper MX and SPF TXT records.
  • Confirmed status displays as Verified in the AWS SES console.

Frequently asked questions

How long does it take for Amazon SES custom domain verification to complete?

DNS verification typically completes within a few minutes once your CNAME records are published and propagated. However, depending on your DNS provider's TTL settings and global caching, complete propagation can occasionally take up to 24 hours.

Why is my SES CNAME verification failing with Cloudflare?

Verification often fails on Cloudflare when the proxy status is enabled (the orange cloud). AWS expects to query your DNS records directly, so you must toggle the proxy status to DNS Only (gray cloud) for all three DKIM CNAME records.

Can I use the same SES domain verification across multiple AWS regions?

No, Amazon SES domain identities and their associated DKIM records are region-specific. If you send emails from both us-east-1 and us-west-2, you must configure and verify your custom domain in each region separately.

What happens if my DKIM CNAME records are deleted after verification?

If you remove or alter your DKIM CNAME records after AWS verifies them, future emails sent through SES will fail DKIM authentication checks. This causes receiving mail servers to flag your messages as unauthenticated or spam.

Do I need to set up a custom MAIL FROM domain if my DKIM is verified?

Setting up a custom MAIL FROM domain is optional for basic sending, but it is strongly recommended. It aligns your visible From address with your Return-Path address, satisfying strict DMARC alignment requirements and improving brand reputation.

Related articles

Free tools