AWS Messaging & Targeting Blog

Announcing Delivery Notifications!

by Morgan Thomas | on | Permalink | Comments |  Share

The Amazon SES team is excited to announce the release of delivery notifications. This feature allows you to receive an SNS notification each time SES successfully delivers one of your emails to a recipient’s mail server. The notifications contain delivery information that provides increased transparency into the status of email sent with SES.

What are delivery notifications?

Delivery notifications are JSON objects that contain metadata about an email and the mail server that accepted it. Here’s an example:

{
  "notificationType": "Delivery",
  "mail": {
    "timestamp": "2014-05-28T22:40:59.638Z",
    "messageId": "0000014644fe5ef6-9a483358-9170-4cb4-a269-f5dcdf415321-000000",
    "source": "test@ses-example.com",
    "destination": [
      "success@simulator.amazonses.com",
      "recipient@ses-example.com"
    ]
  },
  "delivery": {
    "timestamp": "2014-05-28T22:41:01.184Z",
    "recipients": [
      "success@simulator.amazonses.com"
    ],
    "processingTimeMillis": 826,
    "reportingMTA": "a8-70.smtp-out.amazonses.com",
    "smtpResponse": "250 ok:  Message 64111812 accepted"
  }
}

Within the notification, the top-level structure is in the same format as bounce and complaint notifications. However, unique to delivery notifications is the delivery object that contains information specific to the delivery, as described next.

Why do I want them?

Delivery notifications allow you to more accurately track your sending by alerting you the moment that an email is handed off from SES to a receiving mail server. In addition to a delivery timestamp, the notifications provide you with the response message of the remote mail server that accepted your email, the amount of time SES took to process your mail, and more. For details on each field present in the notification along with additional examples, see the AWS developer guide.

How do I use them?

If you’re familiar with configuring bounce or complaint notifications, the process is similar for delivery notifications:

  1. Create an SNS topic you’d like to use to receive delivery notifications. Alternatively, you may use an existing SNS topic.
  2. Use the SES console to edit the notification settings for an identity and select your SNS topic of choice from the “Deliveries” drop-down menu.
    delivery-notifications
    You may also use the SetIdentityNotificationTopic API if you’d prefer to adjust the settings programmatically.
  3. Subscribe your application to the previously specified topic using one of the methods supported by SNS.

Important details

Delivery notifications are published as soon as SES delivers an email to a recipient’s mail server. In most cases, email sent through SES is delivered within seconds, but occasionally it may take considerably longer. For more information about this, please see the previous SES blog entry on the subject: Three places where your email could get delayed when sending through SES.

As with bounce and complaint notifications, an email with multiple recipients may result in more than one delivery notification. See the AWS developer guide for additional information about notifications with multiple recipients.

Furthermore, receiving a delivery notification is not an indication that the email’s intended recipient received the mail in their inbox, or even that they received it in their junk or spam folder. After accepting an email from SES, email providers have complete control over how they process and display the email to their customers. To help ensure your emails reach your recipients’ inboxes, we recommend that you follow the best practices outlined in the Amazon SES whitepaper.

We hope that you enjoy this feature! As always, please leave any comments or questions you may have in the SES Forum or here in the comments section of the blog.