Setup integration: Amazon Simple Email Service (SES) Notification

You need to setup an AWS SNS HTTPS endpoint for this integration!

This integration requires marbot  plus

Amazon Simple Email Service (SES) is an email sending service to send marketing, notification, and transactional emails. You can use the SMTP interface or one of the AWS SDKs to integrate Amazon SES directly into your existing applications. SES can send notifications to SNS. Supported notification types are:

  • Bounce: e.g., the recipient does not exist
  • Complaint: the recipient marked the email as spam
  • Delivery: the email was delivered
    You can select the events that you want to receive.

Monitoring email bounces

If you send out emails, the SMTP server on the other end may reject the message. This could be caused because the recipient does not exist or the inbox of the recipient is full. You may want to know about this event to clean up your database.

Before you can start to set up SES Events, you have to make one change to the SNS topic endpoint that is required for this integration. You have to allow SES Events to send messages to your topic.

Allowing AWS to send messages to your topic

  1. Visit https://console.aws.amazon.com/sns/?region=us-east-1
  2. Click on the Topics link on the left
  3. Select the topic that you created for marbot
  4. Click on the Actions button, where you click on the Edit topic policy link.
    Edit SNS topic policy
  5. Select the Advanced view tab

If this is the first time you edit the SNS topic policy, you should see a default entry like this:

{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
[...TRUNCATED...]
}
]
}

You have to add an entry to the Statement array:

{
"Sid": "AWSSESEvents",
"Effect": "Allow",
"Principal": {
"Service": "ses.amazonaws.com"
},
"Action": "sns:Publish",
"Resource": "ARN",
"Condition": {
"StringEquals": {
"AWS:Referer": "ACCOUNT_ID"
}
}
}
  1. Replace ARN with your SNS topic ARN that you created for marbot.
  2. Replace ACCOUNT_ID with your AWS Account ID.
  3. Click on the Update policy button to save the policy.

Save SNS topic policy

Now, AWS is allowed to send messages to your topic.

Enable SES notifications for a domain

  1. Visit https://console.aws.amazon.com/ses/home?region=us-east-1
  2. Click on the Domains link on the left
  3. Click on the domain where you want to enable notifications
    Enabling SES notifications
  4. Expand the Notifications section
  5. Click on the Edit Configuration button
    Enabling SES notifications
  6. Set Bounces to marbot or your other SNS topic name
  7. Save by clicking the Save Config button.
    Enabling SES notifications

Sample Alert

To simulate a delivery failure:

  1. Visit https://console.aws.amazon.com/ses/home?region=us-east-1
  2. Click on the Domains link on the left
  3. Select the domain where you have enabled notifications
  4. Click on the Send a Test Email button
    Testing SES notifications
  5. Set From to test
  6. Set To to notexistent@domain.com, replace domain.com with the selected domain
  7. Set Subject and Body to test
  8. Send the email by clicking the Send Test Email button.
    Testing SES notifications

You should receive an alert in Slack:

AWS SES Notification Alert