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.

NOTE - You will need to do this for each domain if you are setting this up for more than one domain. However, certain steps are only required once - please see note at the bottom 


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).

1-ses-1

1-ses-2

On the next screen, click on Manage Identities.

2-ses-manage-identities

Then, click on Verify a New Domain

3-ses-verify-new-domain-1

Next, enter your domain name, e.g. wedeliver.email, select Generate DKIM Settings and click Verify This Domain

4-ses-verify-new-domain-2

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.

5-ses-verify-domain-dns-settings-2

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.

6-ses-set-mail-from-domain

At the bottom of the next screen, expand the MAIL FROM Domain section and click on the Set MAIL FROM Domain button.

7-ses-set-mail-from-domain-1

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.

8-ses-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.

9-ses-spf-mx-records-1

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.

10-ses-notifications

Click on Click here to create a new Amazon SNS topic.

 

11-ses-edit-notification-config

Use the following parameters:

Topic Name: WeDeliverEmail (no punctuation)
Display Name: leave blank

Then click Create Topic.

12-ses-create-new-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.

 

13-ses-save-notification-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.

14-ses-request-sending-limit-increase

Leave CC blank, then select as follows:

  1. Regarding: Service Limit Increase,
  2. Limit Type: SES Sending Limits.
  3. Make sure the region matches the region you’re using, in our example US West (Oregon).
  4. Limit: Desired Daily Sending Quota
  5. New Limit Value: enter max daily limit required for the size of your database.
  6. Mail Type: Marketing
  7. Website URL: Your url.
  8. My email-sending complies with the AWS Service Terms and AUP: Yes
  9. I only send to recipients who have specifically requested my mail: Yes
  10. I have a process to handle bounces and complaints: Yes
  11. 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)
  12. Contact method: Web
  13. Click Submit.

15-ses-sending-limit-case

 

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.

16-ses-create-smtp-credentials

Put wedeliver as the IAM User Name and click Create.

17-ses-create-smtp-user

Click on Show User SMTP Security Credentials and copy the username and password. Alternatively, click on Download CredentialsIMPORTANT: 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.

18-ses-smtp-user-credentials

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).

26-ses-home-button

19-ses-sns

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)

20-ses-sns-get-started-1

Click on Topics on the left and copy the ARN that's shown for WeDeliverEmail.

21-ses-sns-topic-arn

Next, click on Subscriptions, then on Create subscription.

22-ses-sns-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:

http://wdem.wedeliver.email/external_webhook.php?app=rc135&auth=a123bp&esp=amazon

23-ses-sns-create-subscription

Click on Create subscription. This will then show as pending.

24-ses-sns-subscription-pending

Click the refresh button in the top right hand corner and a Subscription ARN should be displayed instead of pending.

 

25-ses-sns-subscription-arn-1

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.

 

27-ses-enable-dkim-1

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.

28-ses-enable-dkim-disabled-1

Click Yes, enable DKIM.

29-ses-enable-dkim-yes-enable-1

Your DKIM should now show enabled ( disable )

30-ses-enable-dkim-enabled-1

 

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.

NOTE - For any additional domains, you DO NOT need to complete the following steps:

  • Create New Topic (under SNS). Instead, you would select the existing topic by going to the domain, then clicking on Notifications -> Edit Configuration, then selecting the WeDeliver topic from the dropdown for Bounces and Complaints, set the Email Feedback Forwarding to Disabled, then Save Config).
  • Request a Sending Limit Increase
  • Create SMTP Credentials