Back to Blog
โ˜๏ธ
/3 min read/By SMTPfast Team

AWS SES Setup: From Zero to Production in 30 Minutes

A step-by-step guide to setting up AWS SES for email sending. Domain verification, sending limits, and production access.

awssessetupinfrastructure
Share:๐•in

Why AWS SES?

$0.10
per 1,000 emails - AWS SES is the cheapest reliable email sending infrastructure

Amazon Simple Email Service (SES) is the infrastructure behind most email API companies, including SMTPfast. It is the cheapest reliable email sending service available.

But setting it up yourself requires navigating AWS console, verifying domains, requesting production access, and handling bounces. Here is the complete guide.

Step 1: Create an AWS Account

If you do not have one, sign up at aws.amazon.com. New accounts get 62,000 free emails per month for the first 12 months (when sent from EC2).

Step 2: Choose Your Region

SES is available in specific AWS regions. Pick the one closest to your users:

  • us-east-1 (Virginia) - Most common, lowest latency for US
  • eu-west-1 (Ireland) - Best for European users
  • ap-southeast-2 (Sydney) - Asia-Pacific

Go to the SES console in your chosen region.

Step 3: Verify Your Domain

In the SES console:

  1. Go to Identities > Create Identity
  2. Select Domain
  3. Enter your domain (e.g., yourapp.com)
  4. Enable DKIM signing
  5. Click Create Identity

SES will give you 3 CNAME records to add to your DNS. Add them at your domain registrar and wait for verification (usually 5-30 minutes).

Step 4: Request Production Access

New SES accounts are in sandbox mode: you can only send to verified email addresses, limited to 200 emails per day.

To get production access:

  1. Go to Account Dashboard > Request Production Access
  2. Select Transactional as your mail type
  3. Describe your use case honestly
  4. Set your expected sending volume
  5. Explain how you handle bounces and complaints

AWS usually approves within 24 hours. Be specific about your use case - vague requests get rejected.

Step 5: Set Up Bounce Handling

This is the step most people skip, and it is the most important.

Create an SNS topic for bounces:

  1. Go to SNS > Create Topic (Standard type)
  2. Name it ses-bounces
  3. Create a subscription pointing to your webhook endpoint
  4. In SES, go to your domain identity > Notifications
  5. Set bounce, complaint, and delivery notifications to your SNS topic

Without bounce handling, your sending reputation will degrade over time.

Step 6: Send Your First Email

Using the AWS SDK:

import { SESClient, SendEmailCommand } from '@aws-sdk/client-ses';

const ses = new SESClient({ region: 'us-east-1' });

await ses.send(new SendEmailCommand({
  Source: '[email protected]',
  Destination: { ToAddresses: ['[email protected]'] },
  Message: {
    Subject: { Data: 'Hello from SES!' },
    Body: { Html: { Data: '<h1>It works!</h1>' } },
  },
}));

Or Just Use SMTPfast

Setting up SES yourself is educational but time-consuming. SMTPfast wraps SES with a simpler API, handles domain verification, bounce management, and analytics for you - so you can focus on your product instead of email infrastructure.

curl -X POST https://smtpfa.st/api/v1/emails \
  -H "Authorization: Bearer sf_your_key" \
  -d '{"from":"[email protected]","to":"[email protected]","subject":"Hello!","html":"<h1>Works!</h1>"}'

One line instead of thirty.

Ready to get started?

Start sending transactional email today. Free to start, no credit card required.

Get Started for Free