Understanding of Amazon SES Bounces

Amazon AWS SES is an Simple E-mail Service where most of the customers will use it as an E-mail Relay service to send large number of e-mails to the end users.

When we are sending large number of bulk e-mails to the end users it is very much important to ensure that all our recipients e-mail addresses are valid which in turn helps the quality of the SES service in the e-mail market.

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

Recently, we have rolled out the SES to one of our esteemed customer and we found few interesting bounce types when the bounce e-mails are delivered to our Operations DL e-mail ID.

Before discussing more about the Bounce types, I want you to understand the basics of E-mail Bounces.

What is E-mail Bounce: – If the recipient mail address is does not exist or domain doesn’t exist or e-mail address has any problem then ISP will send a bounce notification to the Amazon SES. To 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: –  Amazon SES categorized the Bounces types into three types.

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. You can remove the email address permanently from your recipients list.

Transient: – It indicates that temporary error in delivering the message, something like email id disabled for couple of days or recipient mailbox is full. You may retry sending of the messages for this kind of notification after some amount of time.

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 sometime.

Here is the 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 e-mail ID’s. When you see the bounce subtype as supressed means, SES has suppressed sending the e-mail to the recipient at SES level because it has recent history of bouncing of such e-mails as an Invalid address.

Example:

{"notificationType":"Bounce","bounce":{"bounceSubType":"Suppressed","bounceType":"Permanent","reportingMTA":"dns; amazonses.com","bouncedRecipients":[{"action":"failed","emailAddress":"abc123@something.com","status":"5.1.1","diagnosticCode":"Amazon SES has suppressed sending to this address because it has a recent history of bouncing as an invalid address. For more information about how to remove an address from the suppression list, see the Amazon SES Developer Guide: http://docs.aws.amazon.com/ses/latest/DeveloperGuide/remove-from-suppressionlist.html "}],"timestamp":"2016-03-07T12:00:55.039Z","feedbackId":"1111aaaddccc112333-11122333fdd-e45c-11233-b43d-11111111111-000000"},"mail":{"timestamp":"2016-03-07T12:00:54.000Z","sourceArn":"arn:aws:ses:us-east-1:1234567890:identity/praveen@praveen.com","sendingAccountId":"1234567890","source":"praveen@praveen.com","messageId":"1111aaaddccc112333-11122333fdd-e45c-11233-b43d-11111111111-000000","destination":["abc123@something.com"]}}

“bounceType”:”Permanent”, & “bounceSubType”:”General”

When you have a valid e-mail domain but the e-mail ID doesn’t exist this kind of notification will be received.

In this case, the e-mail will traverse will deliver to the destination exchange mail server, since the e-mail ID doesn’t exist the exchange will send a bounce back e-mail to the SES, which means there might be a typo in the e-mail ID or the ID doesn’t exist. This can be easily addressed by correcting the typo or completely remove the e-mail ID from your recipient list.

If this kind of notification repeatedly occurs, the notification becomes the “suppressed” notification which will be blocked at SES level itself.

Example:

{"notificationType":"Bounce","bounce":{"bounceSubType":"General","bounceType":"Permanent","reportingMTA":"dsn; a8-80.smtp-out.amazonses.com","bouncedRecipients":[{"action":"failed","emailAddress":"abc123@something.com","status":"5.1.1","diagnosticCode":"smtp; 550-5.1.1 The email account that you tried to reach does not exist. Please try\n550-5.1.1 double-checking the recipient's email address for typos or\n550-5.1.1 unnecessary spaces. Learn more at\n550 5.1.1  https://support.google.com/mail/answer/6596 x63si23110417qkx.21 - gsmtp"}],"timestamp":"2016-03-28T22:56:07.452Z","feedbackId":"01000153bf71009b-73fb00ee-fe40-4ee1-ae38-db86d2fa1803-000000"},"mail":timestamp":"2016-03-07T12:00:55.039Z","feedbackId":"1111aaaddccc112333-11122333fdd-e45c-11233-b43d-11111111111-000000"},"mail":{"timestamp":"2016-03-07T12:00:54.000Z","sourceArn":"arn:aws:ses:us-east-1:1234567890:identity/praveen@praveen.com","sendingAccountId":"1234567890","source":"praveen@praveen.com","messageId":"1111aaaddccc112333-11122333fdd-e45c-11233-b43d-11111111111-000000","destination":["abc123@something.com"]}}

“bounceType”:”Transient” & “bounceSubType”:”General”

When the recipient domain itself doesn’t exist or though his e-mail ID exists but not accepting any more new mails since the e-mail ID is disabled or Inbox is full etc. In this kind of cases, you will see the bounce sub type as General and type as Transient.

These kind of e-mails needs to be thoroughly reviewed and corrected whether the domain exists or any issues with the recipient e-mail ID.

Example:

{"notificationType":"Bounce","bounce":{"bounceSubType":"General","bounceType":"Transient","reportingMTA":"dsn; a8-33.smtp-out.amazonses.com","bouncedRecipients":[{"emailAddress":"foot123@foofoo.com","status":"4.4.7","diagnosticCode":"smtp; 554 4.4.7Message expired: unable to deliver in 840 minutes.<421 4.4.0 Unable to lookup DNS for foofoo.com>","action":"failed"}],"{"timestamp":"2016-03-07T12:00:54.000Z","sourceArn":"arn:aws:ses:us-east-1:1234567890:identity/praveen@praveen.com","sendingAccountId":"1234567890","source":"praveen@praveen.com","messageId":"1111aaaddccc112333-11122333fdd-e45c-11233-b43d-11111111111-000000","destination":["foot123@foofoo.com"]}}

So far, I have seen these kind of notification e-mails regarding bounces, I will add more types as on when I see different kind of bounce type notifications.

Leave a Comment

Your email address will not be published.