Every time we use AWS it's a tedious process to learn about everything so we like to make documents summarizing the steps we took and why. Here's our SES setup notes:
- Create AWS account
- Verify email account with AWS
- Click confirmation email in inbox
- Enable DKIM integration (disables
via amazonses.com
noise)- Requires DNS access
- Takes up to 72 hours
- Verify DNS properly configured via
txt:_amazonses.{{my-domain}}.
on http://mxtoolbox.com/cname:{{dkim-key}}._domainkey.{{my-domain}}.
on http://mxtoolbox.com/
- Set up SNS topic for bounces/complaints (ideally should be none if we handle things right)
- Create SNS topic:
ses-notifications
- Create "email" subscription to topic
- Click through to new topic details
- Use "Create subscription" button
- Click confirm email in inbox
- Go back to SES tab and refresh page
- Set bounce/complaint notifications to SNS topic
- We decided to not include original headers for now as we don't know the behavior
- Create SNS topic:
- Test everything works as expected by sending a test email
- Exit details view (back to Email Addresses)
- Select email address
- Press "Send a Test Email" button
- Use "Formatted" and body with text and a link
(e.g.
This is test content and <a href="http://google.com">a test link</a>
) - Verify email is received and has proper HTML
- Set up SMTP via "SMTP settings"
- Go to "SMTP settings in navigation"
- Click "Create My SMTP Credentials"
- Name user "ses-{{my-domain}}"
- Save credentials
- Update policy to have
"Action": ["ses:SendEmail", "ses:SendRawEmail"],
- Request AWS to increase sending limit
- Can take up to 24 hours
- http://aws.amazon.com/ses/fullaccessrequest/
- https://aws.amazon.com/ses/faqs/
- Test out sending to unverified domains (e.g. personal email)
- Must have AWS sending limit approved before doing so
Notes:
- We don't set up IAM as SMTP can handle errors and SMTP makes it easier to switch providers
- We dislike rate limit turnaround time
- https://aws.amazon.com/blogs/ses/how-to-handle-a-throttling-maximum-sending-rate-exceeded-error/
- We don't set up MAIL FROM Domain as DKIM should take care of that