1b. Set Up Amazon SES
There are a fair few steps involved in setting up Amazon SES so we thought it would be easier to have them all in one place as well as split across the sections. So here are the step-by-step instructions for setting up Amazon SES, including SPF, DKIM, sending domain, unsubscribes and bounces.
If you don't already have an Amazon SES account, please ensure you select US-West-2 or Oregon as your region.
1. Verifying your domain
Once you've logged into the console, locate SES under Application Services (different people have slightly different screens so we have included 2 screen shots of essentially the same thing below).
On the next screen, click on Manage Identities.
Then, click on Verify a New Domain
Next, enter your domain name, e.g. wedeliver.email, select Generate DKIM Settings and click Verify This Domain
Click on Download Record Set as CSV and click Close. Open the CSV file, then copy the one TXT and three CNAME records and enter them in your DNS control panel. If you don't know how to do this, please get someone who does know to do it for you.
Do NOT create the MX record shown at the bottom of the screen!
NB: You do NOT need to include your domain name in the name of the record. e.g. for a87aohoibg9anjopegago._domainkey.wedeliver.email, you would only enter a87aohoibg9anjopegago._domainkey
The domain status will show as "pending verification" until the DNS changes have taken effect. Once updated, it will show as "verified".
2. Set your MAIL FROM domain
Next, find Identity Management on the left and click on Domains, then on the domain name on the right.
At the bottom of the next screen, expand the MAIL FROM Domain section and click on the Set MAIL FROM Domain button.
Select something like "mailer", select the default of Use xx-xxxx-x.amazonses.com (in our example, us-west-2.amazonses.com) as MAIL FROM for Behavior if MX record not found and click on Set MAIL FROM Domain.
Set up the MX and TXT (SPF) records in your DNS control panel as shown on the screen. If you already have an SPF record, amend the existing SPF record to include (without speech marks) "include:amazonses.com" (no spaces). DO NOT create a new SPF record, as this will invalidate both the existing and new SPF record. You must only ever have one SPF record per domain.
3. Set up bounce and unsubscribe notifications
Still in the Domains section, expand Notifications by clicking on the arrow to the left of it, then click on Edit Configuration.
Click on Click here to create a new Amazon SNS topic.
Use the following parameters:
Topic Name: WeDeliverEmail (no punctuation)
Display Name: leave blank
Then click Create Topic.
Next, select WeDeliverEmail for Bounces and Complaints and No SNS topic for Deliveries. Leave all the Include original headers boxes unchecked, set Email Feedback Forwarding to Disabled, then click on Save Config.
4. Request a sending limit increase
Next, click on Sending Statistics on the left hand side under Email Sending. Check the value for Sending Quota and Max Send Rate. Click on Request a Sending Limit Increase. This will create a case.
Leave CC blank, then select as follows:
- Regarding: Service Limit Increase,
- Limit Type: SES Sending Limits.
- Make sure the region matches the region you’re using, in our example US West (Oregon).
- Limit: Desired Daily Sending Quota
- New Limit Value: enter max daily limit required for the size of your database.
- Mail Type: Marketing
- Website URL: Your url.
- My email-sending complies with the AWS Service Terms and AUP: Yes
- I only send to recipients who have specifically requested my mail: Yes
- I have a process to handle bounces and complaints: Yes
- Use Case Description:
Marketing emails sending out information documents and follow-ups when specifically requested via an opt-in formTransactional emails (e.g. receipts, usernames and passwords)
- Contact method: Web
- Click Submit.
Do NOT send any test emails until the sending limit has been increased (you will receive an email to this effect).
5. Create SMTP credentials to connect to WeDeliver.Email
Next, click on SMTP Settings on the left under Email Sending, then click on Create My SMTP Credentials.
Put wedeliver as the IAM User Name and click Create.
Click on Show User SMTP Security Credentials and copy the username and password. Alternatively, click on Download Credentials. IMPORTANT: The is the ONLY TIME these are made available so make sure you save them somewhere you can easily find them if needed. You will need these in your WeDeliver.Email account set-up.
6. Set your webhook to sync unsubscribes between Amazon SES & Infusionsoft
Go back to the console by clicking on the amazon icon in the top left hand corner and click on SNS (currently under Mobile Services).
If there's a Get Started button, click on it.
Ensure the correct region is selected (in our example N. Virginia), i.e. the same one that everything else has been set up for (usually Oregon)
Click on Topics on the left and copy the ARN that's shown for WeDeliverEmail.
Next, click on Subscriptions, then on Create subscription.
In the new box, paste the ARN value you copied earlier into the Topic ARN, select HTTP for the Protocol and set the Endpoint to http://wdem.wedeliver.email/external_webhook.php?app=XXXXX&auth=YYYYYY&esp=amazon, where XXXXX = your Infusionsoft app name, i.e. the bit before Infusionsoft.com, YYYYYY = the first 6 characters of your Infusionsoft API key. An example Endpoint would look like this:
Click on Create subscription. This will then show as pending.
Click the refresh button in the top right hand corner and a Subscription ARN should be displayed instead of pending.
7. Enable DKIM
Go back to Domains (you may need to click the home icon again and select SES) and click on the domain name.
On the next page, expand the DKIM section by clicking on the arrow to the left of it, then click on ( enable ). If it's already showing enabled ( disable ), you don't need to do anything.
Click Yes, enable DKIM.
Your DKIM should now show enabled ( disable )
That's it, you're done! You will, however, need to check your Sending Statistics to ensure they've gone up to the limit you requested BEFORE you send any test emails.