Amazon SES
Amazon SES (Simple Email Service) is the cheapest option at scale - roughly $0.10 per 1,000 emails with no monthly fee. It requires more setup than Resend or Mailgun, and new accounts start in sandbox mode which restricts who you can send to.
Sandbox mode warning: New SES accounts can only send to verified email addresses. You must request production access before sending to real subscribers. See step 4.
Step 1: Create an AWS account
If you do not have an AWS account, go to aws.amazon.com and sign up. A credit card is required.
Step 2: Go to SES in your region
In the AWS Console, search for "Simple Email Service" or navigate to SES directly. Make sure
you are in the region you want to send from - your region choice affects the SES endpoint URLs.
Common choices are us-east-1 (Virginia) or eu-west-1 (Ireland).
Step 3: Verify your sending domain
In the SES console, go to Verified identities and click Create identity. Select Domain and enter your domain.
AWS will provide you with CNAME records to add to your DNS for DKIM verification. Add them to your DNS dashboard and return to SES. Verification usually takes a few minutes.
You may also want to verify your From Email address as an identity, though domain verification is sufficient for sending.
Step 4: Request production access
New SES accounts are in sandbox mode. In sandbox mode, you can only send to email addresses you have individually verified in SES. This is not useful for sending to a real list.
To request production access, go to Account dashboard in SES and click Request production access. Fill out the form explaining your use case (email marketing newsletter, one-time purchase software, etc.). AWS typically approves requests within 24 hours.
Step 5: Create IAM credentials
OwnMaily authenticates with SES using an IAM user access key. In the AWS Console:
- Go to IAM and click Users
- Click Create user and give it a name (e.g.,
ownmaily-ses) -
Attach the policy AmazonSESFullAccess - or create a custom policy that only
allows
ses:SendEmailandses:SendRawEmailfor least-privilege access - After creating the user, go to the user's Security credentials tab
- Click Create access key, select Other as the use case
- Copy the Access Key ID and Secret Access Key - you will only see the secret once
Step 6: Configure OwnMaily
In OwnMaily, go to Settings and find the SMTP section.
- Select Amazon SES as your provider
- Enter your Access Key ID
- Enter your Secret Access Key
- Select your AWS region (must match where you set up SES)
- Set your From Email to an address on your verified domain
- Set your From Name
- Click Save
Step 7: Send a test email
Click Send test email in the SMTP settings panel. If you are still in sandbox mode, enter a verified email address. If you have production access, any valid email address will work.
If the test fails with an authentication error, double-check your access key and secret. If it fails with a "not authorized to send" error, your IAM policy does not have SES send permissions. If it fails because the address is not verified, you are still in sandbox mode.