-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
After an email hard-bounces to a destination, AWS SES will respond with this kind of message:
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
(actual documentation link: https://docs.aws.amazon.com/ses/latest/dg/sending-email-suppression-list.html#sending-email-suppression-list-manual-delete )
During a hard-bounce, SES has two lists - global and account-level.
When an email address produces a hard bounce, SES adds the address to the global suppression list for a short period of time. After that period of time elapses, SES removes the address from the list. If the address produces another hard bounce, SES adds it back to the global suppression list for a longer period of time, and removes it at the end of that period. The amount of time that an address remains on the global suppression list increases each time the address produces a hard bounce. An address can remain on the global suppression list for up to 14 days.
We cannot query the global bounce list, or request removals, but can observe if there is a "bounceType == Permanent" in an email bounce and have a better idea of why emails are not being sent. Subsequent email attempts will have "bounceSubType == Suppressed". This works today!
Once an address ends up on our account's suppression list, it will remain there forever, and a PyPI Admin has no ability to easily discern this status from the UI.
- Add an admin view to check / remove an entry on the suppression list
- Update the user detail template with a way to check / remove and email address from the account suppression list