# The Developer's Guide: Configuring AWS SES for Bulk Email

> Setting up bulk email sending on Amazon SES with Cloudflare DNS: creating the identity and DKIM records, configuring a custom MAIL FROM domain, obtaining SMTP credentials, and exiting the SES sandbox for production access.

Source: https://chanmeng.org/blog/aws-ses-bulk-email-setup
Author: Chan Meng — https://chanmeng.org
Published: 2026-01-16
Tags: DevOps

---

*Originally published on LinkedIn, 16 January 2026. Republished here with light editing.*

This guide walks you through setting up a professional email sending infrastructure using Amazon SES (Simple Email Service) and Cloudflare. By the end of this tutorial, you will have a low-cost, high-deliverability system capable of sending newsletters using your own domain.

## 📋 Prerequisites

- An AWS Account.
- A domain name managed on Cloudflare (we will use yourdomain.com as the example).
- Basic familiarity with DNS records.

---

## Phase 1: Create Identity & DKIM Setup

To send emails as newsletter@yourdomain.com, you must prove to AWS that you own the domain.

1. Navigate to AWS SES:
2. Create Identity:

---

## Phase 2: DNS Configuration (Cloudflare)

AWS will now provide you with CNAME records. These are the "handshake" that proves ownership and sets up DKIM (email signatures).

1. Get the Records:
2. Add to Cloudflare:
3. Add DMARC (Optional but Recommended):

Verification typically takes a few minutes, but can take up to 72 hours.

---

## Phase 3: Configure Custom MAIL FROM Domain

By default, emails come from amazonses.com. To improve deliverability and look professional (e.g., mail.yourdomain.com), set up a custom MAIL FROM.

1. In AWS SES:
2. Update Cloudflare DNS:
3. Wait for Verification:

---

## Phase 4: Get SMTP Credentials

To use tools like Listmonk, WordPress, or custom scripts, you need SMTP credentials (username/password), not your standard AWS login.

1. Generate Credentials:
2. Save Them Immediately:

---

## Phase 5: Exiting the "Sandbox" (Production Access)

All new SES accounts start in "Sandbox Mode".

- Restriction: You can only send 200 emails/day, and only to verified email addresses (your own).
- Goal: Move to Production to send to anyone.

1. Request Production Access:
2. Fill the Form (Best Practices):
3. Wait for Review: usually takes 24 hours.

---

## Phase 6: Using Your Setup (Example: Listmonk)

Now that the infrastructure is ready, you can plug these details into any mailing software.

Example Configuration:

- SMTP Host: email-smtp.ap-southeast-2.amazonaws.com
- Port: 587
- Username: \[Your SMTP Username from Phase 4]
- Password: \[Your SMTP Password from Phase 4]
- Encryption: TLS or STARTTLS

---

## 💰 Cost Analysis (Free Tier)

AWS SES is highly cost-effective for developers:

- First 3,000 messages/month: Free (for the first 12 months).
- Thereafter: \~$0.10 per 1,000 emails.
- Data Transfer: Standard EC2 rates apply (negligible for text emails).

Your professional email infrastructure is now ready!
