← Back to team overview

launchpad-dev team mailing list archive

Revised: What should we do if a user's email addresses have all bounced?

 

Thanks to everyone for the input on this.  I wrote a revision of the proposal.  It's on https://dev.launchpad.net/LEP/BounceHandling and the meat of it is below.  Thoughts still welcome!  (Though I do hope we're narrowing down on agreement.)

Thank you

Gary


=== Must ===

User Experience

 * We send normal Launchpad emails to each user's preferred email address, as we do now.
 * If a preferred email address bounces "too much" for our heuristics (as informed by Barry's Mailman experience), then we do the following.
   * We move the user's account into a state that means that their preferred email address is disabled.  In this document, call this the DISABLED PREFERRED EMAIL state.  We'll describe what this state means to the user below.
   * We send an email to all of that users' registered & validated email addresses, including the one that has bounced, informing them that their preferred email address has a problem.  Describe the symptoms and how to address the problem (see below for details on both).
 * As long as a user is the DISABLED PREFERRED EMAIL state (that is, as long as a user's preferred email address is disabled), we do the following.
   * We do not send any normal Launchpad emails to this user.
   * When a user views their registered email addresses, they can see what addresses have been disabled due to bounces, and reenable them, in addition to setting preferred email and adding and removing addresses, as they can do now.  Reenabling their preferred email address (and thereby leaving the DISABLED PREFERRED EMAIL state) can be done by changing their preferred email address to an address that is not disabled, or by declaring that their current email address should not be disabled.  Re-enabling an email address resets its bounce email heuristic score (described below).
   * We draw a red banner at the top of every web page rendered for this user.  The banner informs them of the problem and links to the page with their registered email addresses, as described immediately above, so they can address the problem.
   * Starting a week later after entering the DISABLED PREFERRED EMAIL state, we send out an email once a week for up to four weeks to the preferred email address, telling the user of the problem and linking to the page with their registered email addresses, so they can address the problem.  In this document, call this a PROBE email.
 * Launchpad (not Registry) administrators (https://launchpad.net/~admins) can change the disabled status of users' email addresses, and thereby affect the DISABLED PREFERRED EMAIL state.

Background and heuristics, as strongly informed by Mailman

[Arbitrary values in the below will be configurable, at a minimum by changing constants in a well-known place in the sourcecode.  These arbitrary values are indicated with italics.]

 * Bounces can be classified as permanent or temporary.  We effectively ignore temporary bounces.
 * Bounces can be caused by receiving bounce emails, or by getting SMTP errors when sending.  Barry's flufl.bounce library is responsible for identifying and classifying bounce emails as permanent or temporary, as well as identifying the affected email addresses.  For SMTP errors, the 450 code and 5xx codes can be regarded as permanent failures, and the other 400 codes can be regarded as temporary failures (see http://tools.ietf.org/html/rfc5321#section-4.2).
 * Each email address has a bounce score.  An unknown/good email address begins with a score of zero.  A score of *five* indicates that the address should be disabled.  A permanent bounce (email or smtp error) causes an address' bounce score to increase by one.  A given bounce score can only increase by one for any given *24 hour* period, so subsequent permanent bounces for the same address within that period are effectively ignored.
 * The bounce score for a given address is reset to zero if the address has not had a bounce for *seven days* and the address is above the "disabled" threshold.
 * Re-enabling an email address resets the bounce score to zero.

=== Nice to have ===

 * If a user is in the DISABLED PREFERRED EMAIL state, this is visible to other Launchpad users, such as in bug subscription lists.
 * When a user views their email addresses, they see an indication if their preferred email address has had some recent bounce problems that have not yet led to disabling.
 * Let a user see the full text (including headers) of the most recent bounce from each of their emails.
 * Pay extra attention when a PROBE email: if it bounces, then it means...something in addition?  See Mailman bug 808821.

Follow ups

References