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 [email protected], you must prove to AWS that you own the domain.
- Navigate to AWS SES:
- 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).
- Get the Records:
- Add to Cloudflare:
- 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.
- In AWS SES:
- Update Cloudflare DNS:
- 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.
- Generate Credentials:
- 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.
- Request Production Access:
- Fill the Form (Best Practices):
- 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!