This guide is for users who choose Amazon SES as their email provider. Maillayer also supports SendGrid and Mailgun — you can configure these directly in the dashboard.

Why Amazon SES?

  • Pay only for what you send (~$0.10 per 1,000 emails)
  • High deliverability rates
  • Built-in bounce and complaint handling
  • Scales to millions of emails

Prerequisites

Video Guide

Follow along with this step-by-step tutorial:

YouTube Video

Step 1: Create an IAM User

  1. Log into the AWS Console
  2. Go to IAM (Identity and Access Management)
  3. Click Users in the sidebar
  4. Click Create user
  5. Enter a name like maillayer-ses
  6. Click Next

Step 2: Set Permissions

  1. Select Attach policies directly
  2. Search for and select these policies:
    • AmazonSESFullAccess — For sending emails
    • AmazonSNSFullAccess — For bounce/complaint notifications
  3. Click Next, then Create user

Step 3: Generate Access Keys

  1. Click on your newly created user
  2. Go to the Security credentials tab
  3. Under Access keys, click Create access key
  4. Select Application running outside AWS
  5. Click Next, then Create access key
  6. Important: Copy both the Access Key ID and Secret Access Key — you won't see the secret again!

Step 4: Add to Maillayer

  1. Open your Maillayer dashboard
  2. Go to SettingsAWS Configuration
  3. Paste your credentials:
    • Access Key ID: AKIA...
    • Secret Access Key: wJalrXUtnFE...
    • Region: Select your SES region (e.g., us-east-1)
  4. Click Save

Step 5: Verify Your Domain

Before sending emails, you need to verify your sending domain:

  1. In Maillayer, go to SettingsDomains
  2. Add your domain (e.g., yourdomain.com)
  3. Add the DNS records shown to your domain registrar
  4. Wait for verification (usually 5-10 minutes)

Troubleshooting

"Access Denied" error

  • Verify the IAM user has AmazonSESFullAccess policy attached
  • Check the region matches between your credentials and SES setup

Can't send emails

Bounce notifications not working

  • Ensure AmazonSNSFullAccess policy is attached to your IAM user

Next: Apply for Production Access to remove sandbox sending limits