Amazon SES setup with GoDaddy DNS

The Ultimate Guide to Amazon SES Setup with GoDaddy DNS

Cloud/Devops
August 18, 2026
8-10 min

Share blog

Introduction

A Complete Zero-to-100% Implementation & Technical Deliverability Manual

Setting up Amazon Simple Email Service (SES) with GoDaddy as your domain registrar is one of the most cost-effective ways to deliver transactional and marketing emails at scale. However, misconfiguring your email authentication protocols such as DKIM, SPF, or DMARC can send your critical messages straight to spam folders or cause recipient servers to reject them entirely. This is exactly the kind of issue our AWS cloud security and compliance team helps production environments avoid.

This comprehensive guide provides an end-to-end operational walkthrough to set up AWS SES from scratch, extract the precise DNS records, avoid GoDaddy-specific formatting pitfalls, configure strict authentication protocols, and request exit from the AWS SES Sandbox into full production. For teams that prefer professional DevOps services to handle this setup, this walkthrough also serves as a reference for what the implementation involves.

"Note for Users on Other DNS Providers (Cloudflare, Namecheap, Route 53, DigitalOcean, etc.): While this guide highlights GoDaddy specifically, DNS record requirements for AWS SES are universal across all DNS management platforms. Regardless of whether your DNS is hosted on Cloudflare, Namecheap, AWS Route 53, Google Cloud DNS, or elsewhere, you will still create the exact same CNAME, MX, and TXT records for DKIM, SPF, and DMARC. The core principles, syntax, and verification steps in this guide apply 100% to your DNS provider as well."

Key Architectural Protocols & Prerequisites

Before configuring DNS records, it is critical to understand the four underlying protocols that secure your email domain and guarantee deliverability:

Record TypeProtocolTechnical Purpose
CNAMEEasy DKIMProvides asymmetric cryptographic signatures to verify that emails originated from your domain and were not tampered with in transit.
TXTSPFSpecifies which mail servers (IP addresses/hosts) are explicitly authorized to send email on behalf of your domain.
TXTDMARCDictates policy enforcement (None, Quarantine, Reject) to receiving inbox providers if SPF or DKIM validation fails.
MX & TXTCustom MAIL FROMEnables full SPF alignment between the technical envelope sender domain and the visual From: header domain.

Step-by-Step Implementation Guide

Step 1: Create and Configure Domain Identity in AWS SES

1. Log in to the AWS Management Console and search for Amazon Simple Email Service (SES).

AWS Management Console search for Amazon Simple Email Service SES setup

2. In the left navigation sidebar under Configuration, select Identities.

AWS SES console left navigation sidebar selecting Identities configuration

3. Click Create identity.

AWS SES Create identity button for domain email setup

4. Select Domain as the Identity type.

5. Enter your root domain name (e.g., yourdomain.com).

6. Check Custom MAIL FROM domain (Highly Recommended):

  • Check Use a custom MAIL FROM domain.
  • Enter a dedicated subdomain prefix such as mail or bounce (e.g., mail.yourdomain.com).
  • Under Behavior on MX failure, choose Reject message to enforce strict alignment.
  • Uncheck publish DNS records to Route53

7. Expand Advanced DKIM settings:

  • Select Easy DKIM.
  • Choose RSA_2048_BIT for the DKIM signing key length (recommended for widespread mail client compatibility).
  • Uncheck publish DNS records to Route53
  • Keep DKIM signatures Enabled.

8. Click Create identity at the bottom of the page.

AWS SES domain identity configuration with custom MAIL FROM and DKIM settings
AWS SES Easy DKIM signing key length RSA 2048 bit configuration

Step 2: Retrieve the Generated DNS Records from AWS

Once created, open the Get set up page from the left menu in AWS SES and click Get DNS Records button. You will be presented with the following required DNS records:

AWS SES Get DNS Records page showing DKIM SPF and DMARC records
AWS SES generated CNAME MX and TXT DNS records for email authentication
  • 3 CNAME Records for Easy DKIM (e.g., [token1]._domainkey.yourdomain.com pointing to [token1].dkim.amazonses.com).
  • 1 MX Record for Custom MAIL FROM (e.g., mail.yourdomain.com pointing to feedback-smtp.[region].amazonses.com with priority 10).
  • 1 TXT Record for Custom MAIL FROM SPF (e.g., mail.yourdomain.com with value "v=spf1 include:amazonses.com ~all").
  • 1 TXT Record DMARC (e.g., _dmarc.yourdomain.com with value "v=DMARC1; p=none;").

Step 3: Add DNS Records in GoDaddy DNS Management

"CRITICAL GODADDY PITFALL: AUTOMATIC DOMAIN APPENDING GoDaddy automatically appends your root domain (.yourdomain.com) to whatever string you type in the 'Name' or 'Host' field. If AWS gives you a host name like token1._domainkey.yourdomain.com, you must enter ONLY token1._domainkey into GoDaddy. Pasting the full domain results in token1._domainkey.yourdomain.com.yourdomain.com, causing verification to fail permanently."

Navigate to your GoDaddy Domain Portfolio, click your domain, select DNS, and add the following 6 records:

TypeName / Host (GoDaddy)Value / TargetPriorityTTL
CNAME[token1]._domainkey[token1].dkim.amazonses.com-1 Hour
CNAME[token2]._domainkey[token2].dkim.amazonses.com-1 Hour
CNAME[token3]._domainkey[token3].dkim.amazonses.com-1 Hour
MXmailfeedback-smtp.[region].amazonses.com101 Hour
TXTmailv=spf1 include:amazonses.com ~all-1 Hour
TXT_dmarcv=DMARC1; p=none;-1 Hour

Step 4: Verify Propagation and AWS Identity Status

DNS changes typically propagate within 15 minutes, though GoDaddy can occasionally take up to a few hours. Return to the AWS SES Console and confirm:

  • Identity status: Verified (Green badge)
  • DKIM status: Successful
  • MAIL FROM status: Successful
AWS SES verified domain identity status with DKIM and MAIL FROM successful

Step 5: Request Production Access (Exiting the SES Sandbox)

All new AWS SES accounts are placed in the SES Sandbox to prevent abuse. In Sandbox mode, you can only send emails to verified recipient addresses, and daily limits are restricted to 200 messages per 24 hours.

To move into Production:

  • In AWS SES Console, navigate to Get Set up page.
  • Click Request production access.
  • Select your Mail Type (Transactional vs. Marketing).
  • Enter your active website URL.
  • Provide a detailed Use Case Description explaining how you collect opt-ins, handle bounce/complaint notifications, and process unsubscribes.
  • Submit the request (AWS review typically takes 24–48 hours).
AWS SES request production access form to exit sandbox for transactional emails

Deliverability & Anti-Spam Technical Checklist

Technical MetricBest Practice RequirementRisk / Common Failure
DKIM Host FormattingStrip root domain suffix in GoDaddyDuplicated hostname renders DKIM records unresolvable.
SPF Record LimitMaximum of 1 SPF TXT record per subdomainMultiple SPF records on one domain fail SPF validation outright.
DMARC EnforcementStart with p=none, progress to p=quarantinePrematurely setting p=reject can drop legitimate messages during setup.
MAIL FROM AlignmentUse dedicated subdomain (mail.domain.com)Prevents soft-fail warnings in Gmail/Outlook for sender mismatch.
Bounce Rate ThresholdKeep bounce rate strictly under 5%Rates exceeding 5% cause immediate AWS SES sending suspension.

DNS Verification via Command Line (Terminal / CMD)

You can verify that your DNS records have successfully propagated using the dig command line tool before checking AWS:

bash
# 1. Verify DKIM CNAME Record propagation
dig CNAME token1._domainkey.yourdomain.com +short
# 2. Verify Custom MAIL FROM SPF Record
dig TXT mail.yourdomain.com +short
# 3. Verify DMARC TXT Record
dig TXT _dmarc.yourdomain.com +short

Blogs

Discover the latest insights and trends in technology with the Omax Tech Blog.

View All Blogs
Omax | Blog | Clean Code vs. Overengineering: Where Should Developers Draw the Line?
10-12 min
August 21, 2026

Clean Code vs. Overengineering: Where Should Developers Draw the Line?

Clean code reduces unnecessary complexity; overengineering invents it. A practical guide to using context, evidence, and the cost of change to know when to stop adding abstractions...

Read More
Omax | Blog | Kafka vs RabbitMQ vs AWS EventBridge: Choosing the Right Architecture Based on Business Requirements
10-12 min
August 21, 2026

Kafka vs RabbitMQ vs AWS EventBridge: Choosing the Right Architecture Based on Business Requirements

Compare Kafka, RabbitMQ, and AWS EventBridge based on scalability, routing, event streaming, replay, infrastructure, and business requirements to choose the right architecture...

Read More
Omax | Blog | AI Integrations for QA Engineers
15-20 min
August 20, 2026

AI Integrations for QA Engineers

Learn how QA engineers can connect AI with Jira, GitHub, Slack, Notion and other tools to improve testing, bug tracking, reporting and QA productivity...

Read More
Omax | Blog | AWS DevOps Agent Setup Guide with EC2
8-10 min
August 17, 2026

AWS DevOps Agent Setup Guide with EC2

Learn how to set up AWS DevOps Agent with EC2, CloudWatch, IAM, and Agent Spaces for AI-assisted monitoring, incident investigation, and root-cause analysis...

Read More
Omax | Blog | Multi-Tenancy Patterns in DynamoDB: Silo, Pool, and Bridge Models
6-10 min
August 13, 2026

Multi-Tenancy Patterns in DynamoDB: Silo, Pool, and Bridge Models

If you've already made the jump from a relational database to DynamoDB see our guide on moving relational data from SQL to DynamoDB...

Read More
Omax | Blog | We stopped leaving the IDE to design. Here’s our Cursor → Figma flow
8-10 min
August 10, 2026

We stopped leaving the IDE to design. Here’s our Cursor → Figma flow

Cursor drafts fast, catches gaps early, and still clips fields and breaks layouts. Here's the real pros-and-cons breakdown of our workflow...

Read More
Omax | Blog | AWS DevOps Agent: How AI is Automating On-Call Incident Response
6-8 min
August 07, 2026

AWS DevOps Agent: How AI is Automating On-Call Incident Response

If you've ever been on call during a production outage, you know how stressful it can be. Alerts start firing, dashboards light up, and suddenly you're jumping between monitoring tools...

Read More
Omax | Blog | Catch Missing Images Before Deploy: A Simple Pre-Build Script for Next.js
6-10 min
August 06, 2026

Catch Missing Images Before Deploy: A Simple Pre-Build Script for Next.js

How Omax Tech added a lightweight image validation gate to Next.js 15 builds on Vercel...

Read More
Omax | Blog | Teach your LLM your design system: Storybook MCP + Amazon Bedrock + Strands
10-15 min
August 04, 2026

Teach your LLM your design system: Storybook MCP + Amazon Bedrock + Strands

How to stop models inventing buttons and make them build UI from your real component catalog. Most "AI UI" demos look great until you paste the markup into a real product. The fix is not a smarter prompt...

Read More

Ready to Work With Us?

Most engagements start with a 20-minute conversation. No pitch, no pressure - just an honest discussion about what you're building and whether we're the right fit.