MitrahSoft is an Adobe offcial partner MitrahSoft is Lucee offcial partner & core contributing developer

Understanding Of Amazon SES Bounces

Amazon AWS SES is a Simple Email Service where most of the customers will use it as an Email Relay service to send a large number of email to the users. When we are sending a large number of bulk email to the users it is very much important to ensure that all our recipient's email addresses are valid which in turn helps the quality of the SES service in the email market. You can check here SES docs about more details.

The following are some important notes about the contents of Amazon SNS notifications for Amazon SES:

  1. You might receive multiple types of Amazon SNS notifications for one recipient. For example, the receiving mail server might accept the email (triggering a delivery notification), but after processing the email, the receiving mail server might determine that the email actually results in a bounce (triggering a bounce notification). However, these are always separate notifications because they are different notification types.
  2. Amazon SES reserves the right to add an additional field to the notifications. As such, applications that parse these notifications must be flexible enough to handle unknown fields.
  3. Amazon SES overwrites the headers of the message when it sends the email. You can retrieve the headers of the original message from the headers and common header fields of the mail object.

When we have a large number of recipients in our database there is a high chance of having typos, non-valid email IDs or non-existent domain email ids and etc. To identify such kind of recipient email ids Amazon SES providing a notification service called Amazon SES Bounces notification which you can subscribe it as an SNS notification to deliver all your bounce emails to your operations Distribution List (DL) email ID.

Recently, we have implemented the SES rest API integration to one of our clients and we found few interesting bounce types when the bounce email are delivered to our Operations DL e-mail ID.

What is Email Bounce ?

If the recipient mail address does not exist or domain does not exist or email address has any problem then ISP will send a bounce notification to the Amazon SES. For get a notification to the sender email box about the bounce mail, you need to configure the Amazon SNS service along with SES to receive the bounce notifications.

Bounce Types

The bounce object contains a bounce type of Undetermined, Permanent, or Transient . The Permanent and Transient bounce types can also contain one of several bounce subtypes.

Permanent

It indicates you should not send any mail to this recipient any more. The ISP will bounce with this particular error. For example, the email address does not exist. When you receive a bounce notification with a bounce type of Permanent, it's unlikely that you'll be able to send email to that recipient in the future. For this reason, you should immediately remove the recipient whose address produced the bounce from your mailing lists.

Transient

It indicates that temporary error in delivering the message, something like email id disabled for a couple of days or recipient mailbox is full. When you receive a bounce notification with a bounce type of Transient, you might be able to send email to that recipient in the future if the issue that caused the message to bounce is resolved.

Undetermined

It means that SES does not know whether it is a Permanent or Transient bounce type. In this case, you need to manually review the bounce notification and decides whether to delete the recipient from your list or you want to retry after some time. Here is the some understanding of the Bounce Types and SubTypes when they delivered to your Inbox.

"bounceType":"Permanent" & "bounceSubType":"Suppressed"

In general, Amazon SES manages the history of bounces email ID's. When you see the bounce subtype as suppressed means, SES has suppressed sending the e-mail to the recipient at SES level because it has recent history of bouncing of such email as an invalid address. For information about removing an address from the Amazon SES suppression list, see Removing an Email Address from the Amazon SES Suppression List. You can check here the amazon documentation RemoveList

Example Response

"bounceType":"Permanent", & "bounceSubType":"General"

When the recipient domain itself doesn't exist or though his email ID exists but not accepting any more new mails since the email ID is disabled or Inbox is full etc. In this this cases, you will see the bounce sub type as General and type as Transient. You might be able to send to the same recipient in the future when the mailbox is no longer full.