AWS Messaging & Targeting Blog

Goodbye blacklist. Introducing the suppression list!

We’ve heard your feedback: handling “Address Blacklisted” errors is a major hassle. We have been working to make that experience more intuitive, and are happy to announce that today we launched the blacklist’s replacement, the Amazon SES suppression list.

Like the blacklist, the suppression list is a list of recipient addresses that Amazon SES blocks because the addresses have recently caused a hard bounce for any Amazon SES sender. The differences are as follows.

Response from Amazon SES

The main difference between the blacklist and the suppression list is that if you tried to send an email to an address on the blacklist, the call was rejected with an “Address Blacklisted” error. Now, the call to Amazon SES succeeds, but Amazon SES treats the email as if it was a hard bounce.

Feedback Notifications

Because Amazon SES treats emails to suppressed addresses as hard bounces, you are notified of these failed sending attempts as you would any other hard bounce – through Amazon SNS or email, depending on how you set up your notifications.  The main advantage of this new approach is that you can now process suppression-list bounces using the same procedure you have already set up to handle hard bounces. (For a refresher on feedback handling, see the Amazon SES Email Sending Best Practices white paper.)

The hard bounce that Amazon SES generates when you attempt to send an email to an address on the suppression list follows DSN standards and contains the original message ID and the list of suppressed addresses that triggered it.

If you choose to receive your feedback notifications via email, a suppression-list hard bounce notification will look something like this:

Date: Tue, 30 Apr 2013 14:47:38 +0000
From: MAILER-DAEMON@amazonses.com
To: sender@ses-example.com
Message-ID: <0000013e5b69c216-e6aa9d2f-b1a4-11e2-a5f5-sample248e6e-000000@email.amazonses.com>
Subject: Delivery Status Notification (Failure)
MIME-Version: 1.0
Content-Type: multipart/report;
               boundary="----=_Part_357_270245304.1367333257931";
               report-type=delivery-status
 
------=_Part_357_270245304.1367333257931
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
 
An error occurred while trying to deliver the mail to the following recipients:
suppressionlist@simulator.amazonses.com
------=_Part_357_270245304.1367333257931
Content-Type: message/delivery-status; name=status.dat
Content-Transfer-Encoding: 7bit
Content-Description: Delivery Status Notification
Content-Disposition: attachment; filename=status.dat
 
Reporting-MTA: dns; amazonses.com
 
Remote-MTA: dns; amazonses.com
Final-Recipient: rfc822; suppressionlist@simulator.amazonses.com
Action: failed
Diagnostic-Code: 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.thinkwithwp.com/ses/latest/DeveloperGuide/remove-from-suppressionlist.html
Status: 5.1.1
 
 
------=_Part_357_270245304.1367333257931
Content-Type: message/rfc822; name="suppressionlist example"
Content-Disposition: attachment; filename="suppressionlist example"
 
From: sender@ses-example.com
To: suppressionlist@simulator.amazonses.com
Subject: suppressionlist example
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Date: Tue, 30 Apr 2013 14:47:36 +0000
Message-ID: <0000013e5b69bc92-bb8fe379-720d-4016-8f01-sample17045d-000000@email.amazonses.com>
 
example
------=_Part_357_270245304.1367333257931--

If you choose to receive your feedback notifications via Amazon SNS, a suppression-list SNS notification will look something like this:

{"notificationType":"Bounce","bounce":{"bounceSubType":"Suppressed","bounceType":"Permanent","reportingMTA":"dns; amazonses.com","bouncedRecipients":[{"emailAddress":" suppressionlist@simulator.amazonses.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.thinkwithwp.com/ses/latest/DeveloperGuide/remove-from-suppressionlist.html ","action":"failed"}],"timestamp":"2013-04-30T14:47:38.364Z","feedbackId":"0000013e5b69c216-e6aa9d2f-b1a4-11e2-a5f5-sample248e6e-000000"},"mail":{"timestamp":"2013-04-30T14:47:36.000Z","source":" sender@ses-example.com","messageId":"0000013e5b69bc92-bb8fe379-720d-4016-8f01-sample17045d-000000","destination":[" suppressionlist@simulator.amazonses.com"]}}

Sending to Multiple Recipients

If you send an email to multiple recipients in one call to Amazon SES, and the recipient list contains both suppressed and valid addresses, the message will no longer be rejected upfront by Amazon SES. Instead, the message will be delivered to the valid addresses and you will receive bounces corresponding to the suppressed addresses.

Mailbox Simulator

For testing purposes, we added a new mailbox simulator address:  suppressionlist@simulator.amazonses.com. Sending to this address will trigger Amazon SES to generate a hard bounce just as it would if you had sent an email to an address on the suppression list. For backward compatibility, blacklist@simulator.amazonses.com is still active but we changed its behavior to match that of the suppression list address. 

Pricing

Emails to addresses on the suppression list will be billed according to the normal Amazon SES pricing plan, except for the data transfer out bandwidth for which you are exempt for the suppressed destinations. This precisely matches the current behavior in the case where emails are sent to invalid addresses not known to have bounced before.

Removing an Address From the List

As with the blacklist, if you are sure an email address is valid, you can remove it from the suppression list simply by filling out a form on the Amazon SES console.

We hope that this new approach makes it easier to work with invalid addresses. For any questions or suggestions, we invite you to post on the Amazon SES Forum. Thanks for using Amazon SES!