> For the complete documentation index, see [llms.txt](https://docs.emaildelivery.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.emaildelivery.com/docs/introduction/connect-amazon-ses-api.md).

# Connect Amazon SES API

{% hint style="danger" %}
**We are not following Amazon's best practices in this guide to greatly reduce complexity.**

This documentation gives you the shortest path to send your first email by having you create access keys for the root user. This will increase your chances of a successful setup.
{% endhint %}

{% hint style="warning" %}
Amazon recommends creating an IAM account that has the minimum access required for using SES as best practice, rather than using root user access keys as shown in this guide.&#x20;
{% endhint %}

{% hint style="info" %}
**Advanced users only**

To implement Amazon's best practices yourself, create a new user with only the [AmazonSESFullAccess](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/control-user-access.html) and [AmazonSNSFullAccess](https://docs.aws.amazon.com/sns/latest/dg/AccessPolicyLanguage.html) permissions policies applied.
{% endhint %}

First, create an Amazon AWS account if you don't have one.

As of the time of this writing, the link is:

{% embed url="<https://portal.aws.amazon.com/billing/signup#/start/email>" %}

<figure><img src="/files/IfmcKHzOeG2lHolVyQ6H" alt=""><figcaption></figcaption></figure>

Login to the AWS console as the root user you've created&#x20;

{% embed url="<https://console.aws.amazon.com/>" %}

![](/files/8dVhE2oN16FxSkrNkxWY)

You'll start off at the console home page.&#x20;

Take note of your account region, this will be needed later.

<figure><img src="/files/lokFXMmafNcu8nIjf0Za" alt=""><figcaption></figcaption></figure>

In the upper right of the console home, click your username, then security credentials.

<div align="left"><figure><img src="/files/61OYCvy77YwS5dToMgm7" alt="" width="375"><figcaption></figcaption></figure></div>

Scroll down to create access key.

<figure><img src="/files/u7ggPl3TJBuXz0X0uQbD" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Amazon will warn you this is not following best practices, confirm to go to the next step.
{% endhint %}

<figure><img src="/files/pJrAoC8Qn9vc6pAKLhun" alt=""><figcaption></figcaption></figure>

Copy both of your access keys and save them somewhere secure as you will need them to integrate with your EmailDelivery.com platform installation later.

<figure><img src="/files/uvaLLy9hXEU2mlOzTITt" alt=""><figcaption></figcaption></figure>

Now that your access credentials have been created, it's time to go to the Amazon SES page.&#x20;

{% embed url="<https://console.aws.amazon.com/ses/>" %}

Click verified identities.

<div align="left"><figure><img src="/files/wnsqlaH2QySDrw7oE9Ho" alt="" width="272"><figcaption></figcaption></figure></div>

Click create identity.&#x20;

<figure><img src="/files/6DJQoAO26ffa7K3VJP9Q" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Your verified identity is the domain you want to send mail with over Amazon SES**

This is going to be a subdomain exclusively created for this purpose.
{% endhint %}

<figure><img src="/files/uzKqyDEfoSrnS0Wju2Ix" alt=""><figcaption></figcaption></figure>

After saving, you'll need to verify your ownership of the domain by creating some CNAME records generated by Amazon to your DNS provider.&#x20;

<figure><img src="/files/VTdmomfbD3EeMrZl2AhX" alt=""><figcaption></figcaption></figure>

Below is an example of how this would look on Cloudflare.

<figure><img src="/files/OSDyU0tF9YL3JSLHkG4y" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**The best things come to those who wait**

Amazon autodetects the CNAME records. You'll need to periodically refresh the page until it finds them.&#x20;
{% endhint %}

Once your domain has successfully been verified you'll see the following.

<figure><img src="/files/R7DpbPl9dgDSZ3dhLr6Q" alt=""><figcaption></figcaption></figure>

Now it's time to add your Amazon SES sending domain to your platform.

In the backend navigation go to Connect -> Amazon SES API.

<div align="left"><figure><img src="/files/XJVYI5IguSr2QI6V2PhT" alt="" width="375"><figcaption></figcaption></figure></div>

Click Add SES account.

<figure><img src="/files/pOYp6MXONp8R2OOHkuw3" alt=""><figcaption></figcaption></figure>

Look at the URL of your Amazon console to find your region, and add the domain you used for your verified identity.

<figure><img src="/files/eFDEjUT72xYsusj5oAfx" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/EgtsC1Ln2SOi057rGBzQ" alt=""><figcaption></figcaption></figure>

Click save.

<figure><img src="/files/FRTcz7cFl29Ditt8MOJh" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
**if your configuration saves successfully you should now be integrated with Amazon SES.**&#x20;
{% endhint %}

🚨  **For new Amazon SES accounts there's one more step.** 🚨

{% hint style="danger" %}
**New accounts start off in the Amazon "Sandbox" until they're approved by Amazon.**

When you're in the Amazon sandbox, you can only send test messages to your own verified email addresses; this would typically be a Gmail address.&#x20;
{% endhint %}

{% hint style="info" %}
**To verify an email address, Amazon emails a link.**&#x20;

Click the link and you can send test messages through Amazon until you're approved to send outside of the sandbox.&#x20;
{% endhint %}

<figure><img src="/files/aqrRlszC6TyuYzyRAiFm" alt=""><figcaption></figcaption></figure>

Create an identity just like you did to verify your domain:

<figure><img src="/files/qrYYidvvGfCjghItVSiV" alt=""><figcaption></figcaption></figure>

Choose Email address instead of Domain this time:

<figure><img src="/files/LSB38pT4NJ4kLnUIhz78" alt=""><figcaption></figcaption></figure>

Click the link sent to your email:

<figure><img src="/files/9AzMsKneDw4WOSs6RWhu" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/rp2Z06TU7kRPrC9Rm0EX" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
You're done. You can send messages to your verified email address from the sandbox now.&#x20;
{% endhint %}

{% hint style="danger" %}
**URGENT:** **Don't use an Amazon SES authenticated email address as your ESP platform's Sender Email Address.**
{% endhint %}

<figure><img src="/files/RXcNAf7DqhWBbeAiVgik" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Using your verified email address as your sender email address will stop Amazon from sending webhooks back to your platform, causing your stats to be blank.**&#x20;
{% endhint %}

<figure><img src="/files/7wmcTYma2LjhODy6MR6N" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/aGdXNidc4gHxqalx1IWw" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Troubleshooting**

The below steps are optional and for troubleshooting purposes only.
{% endhint %}

On Amazon, the notifications tab should show feedback notifications have been created. If it's not there, refresh the page a few times.&#x20;

<figure><img src="/files/xn1y3fKGp0h68PbnnTuk" alt=""><figcaption></figcaption></figure>

You should have an SNS topic automatically configured at the following url.

{% embed url="<https://console.aws.amazon.com/sns/>" %}

<figure><img src="/files/8UkAzjNND1ZPTIetayhA" alt=""><figcaption></figcaption></figure>

Under topics/subscriptions you should see your platform install domain admin\_url has been added automatically as your webhook endpoint.

<figure><img src="/files/blPjT269pXrgCgqG4sOW" alt=""><figcaption></figcaption></figure>
