Docs Providers

AWS SES

Configure Amazon Simple Email Service as your email provider.

About AWS SES

Amazon Simple Email Service (SES) is a cost-effective email service for high-volume sending. It integrates well with other AWS services and offers flexible pricing.

Website: aws.amazon.com/ses

Prerequisites

  1. An AWS account
  2. AWS SES configured in your region
  3. IAM credentials with SES permissions
  4. Verified email or domain

Getting Credentials

Create an IAM User

  1. Go to IAM in AWS Console
  2. Click Users > Add user
  3. Name it (e.g., “mailshit-ses”)
  4. Select Programmatic access
  5. Attach the AmazonSESFullAccess policy (or create a more restrictive policy)
  6. Complete creation and save the Access Key ID and Secret Access Key

Minimal IAM Policy

For better security, use a restrictive policy:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ses:SendEmail",
        "ses:SendRawEmail"
      ],
      "Resource": "*"
    }
  ]
}

Configuration

Add AWS SES in mailshit:

  1. Go to Settings > Providers
  2. Click Add Provider
  3. Select AWS SES
  4. Enter the following:
FieldDescriptionExample
Access Key IDIAM user access keyAKIA...
Secret Access KeyIAM user secret keyabc123...
RegionAWS regionus-east-1
From EmailVerified sender emailhello@yourdomain.com
From NameDisplay name (optional)Your Company
  1. Click Save

Available Regions

Region CodeLocation
us-east-1US East (N. Virginia)
us-west-2US West (Oregon)
eu-west-1EU (Ireland)
eu-central-1EU (Frankfurt)
ap-southeast-1Asia Pacific (Singapore)
ap-southeast-2Asia Pacific (Sydney)

Sandbox Mode

New SES accounts start in sandbox mode:

  • Can only send to verified email addresses
  • Limited to 200 emails per 24 hours
  • Limited to 1 email per second

Moving Out of Sandbox

  1. Go to SES > Account dashboard
  2. Click Request production access
  3. Fill out the form explaining your use case
  4. Wait for approval (usually 24 hours)

Verifying Senders

Verify Email Address

  1. Go to SES > Verified identities
  2. Click Create identity
  3. Select Email address
  4. Enter your email and click Create
  5. Click the verification link
  1. Go to SES > Verified identities
  2. Click Create identity
  3. Select Domain
  4. Enter your domain
  5. Add the DNS records SES provides
  6. Click Verify

Pricing

AWS SES is extremely cost-effective:

  • $0.10 per 1,000 emails
  • First 62,000 emails free if sent from EC2
  • No monthly fees

Example Response

{
  "success": true,
  "type": "sent",
  "messageId": "ses-msg-abc123..."
}

Best Practices

  1. Set up DKIM and SPF through domain verification
  2. Monitor reputation metrics in SES dashboard
  3. Use configuration sets for tracking
  4. Handle bounces and complaints via SNS notifications

Troubleshooting

“Email address is not verified”

  • Verify your sender identity in SES
  • If in sandbox, also verify recipient addresses

“Access Denied”

  • Check IAM policy includes ses:SendEmail
  • Verify Access Key ID and Secret are correct

“Throttling” errors

  • You’re hitting send rate limits
  • Request production access or implement rate limiting