You need to setup an AWS SNS HTTPS endpoint for this integration!
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 events to SNS. Supported event types are:
- Send: SES is processing the email
- Reject: the email contained a virus
- Bounce: e.g., the recipient does not exist
- Complaint: the recipient marked the email as spam
- Delivery: the email was delivered
- Open: the recipient opened the email in his or her email client
- Click: the recipient clicked one or more links contained in the email
- Rendering Failure: the email was not sent because of a template rendering issue
You can select the events that you want to receive.
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.
- Visit https://console.aws.amazon.com/sns/?region=us-east-1
- Click on the Topics link on the left
- Select the topic that you created for marbot
- Click on the Actions button, where you click on the Edit topic policy link.
- 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:
You have to add an entry to the
- Replace ARN with your SNS topic ARN that you created for marbot.
- Replace ACCOUNT_ID with your AWS Account ID.
- Click on the Update policy button to save the policy.
Now, AWS is allowed to send messages to your topic.
- Visit https://console.aws.amazon.com/ses/home?region=us-east-1
- Click on the Configuration Sets link on the left
- Click on the Create Configuration Set button
- Set Configuration Set Name to
- Save by clicking the Create Configuration Set button.
- Click on the newly created configuration set
- Set Add Destination to
- Set Name to
- Enable Event type
- Set Topic to
marbotor your other SNS topic name
- Save by clicking the Save button.
To simulate a delivery failure, you have to send an email using the AWS CLI or one of the AWS SDKs. The following command uses the AWS CLI and can be executed in your terminal. Replace
domain.com with your SES domain.
aws ses send-email --configuration-set-name marbot --from "firstname.lastname@example.org" --to "email@example.com" --subject test --text text
configuration-set-name parameter specifies that the email is sent using the newly created Configuration Set
You should receive an alert in Slack: