# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.emaildelivery.com/docs/introduction/connect-amazon-ses-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
