Email Bounce Processes

This is for reference purposes.

Sometimes, JudgeApps will receive “bounce” or “complaint” responses after sending out an email. In accordance with the policies and guidelines of Amazon SES, our email provider, we are required to implement a process to handle such issues.

  • Soft bounces occur when an email delivery “fails temporarily”. This may mean that the mail server is not responding, or that the recipient’s mailbox is full. Soft bounces are normally re-tried periodically, and don’t require any special action.
  • Hard bounces occur when an email delivery “fails permanently”. This may mean that the domain has no valid email servers, or that the local part of the domain does not correspond to a real mailbox. They can also occur when an email soft-bounces, but remains undeliverable for a specified period (usually 48 hours).
  • Complaints occur only with certain mail providers. When a user has a mail provider who supports this feature, if that user clicks “mark as spam” or the equivalent, a complaint is generated.

We collect hard bounces and complaints and process them periodically. To process them, we modify the user’s JudgeApps account to indicate that the email address is “not verified”. This status disables the account and all outgoing email until the email address is re-validated. Currently, the user can attempt to log in. They will then be redirected to a page explaining that they must verify their email, and will be given an option to send a verification email to their address on file. If that address is not correct, the user must contact our account assistance team in order to update the address.

Note that for technical reasons, disabling the account has a variety of side effects, including preventing the user from accessing most of the site, and hiding their account from most searches. The user account will be reactivated once the email issue is corrected.

TODO: Currently, the verification email is sent automatically when the user attempts to log in. In the future, we should change the email to be sent only when the user first registers, or when the user affirmatively requests it. Additionally, we should implement rate limiting on this email so that it can be sent no often than once every 24 hours to a given address.