On 3/12/19 3:57 AM, Aaryan Bhagat wrote:
>> The other kind are DSNs of some type returned to a LIST-bounces address. 
>> These are processed by flufl.bounce 
>> <https://gitlab.com/warsaw/flufl.bounce/> which determines whether the 
>> failure is temporary or permanent and reports that to the bounce runner. 
> 
> In the end the bounce runner gets all the messages for a particular list and 
> ( irrespective of who send them DSN or failure in SMTP).
> So I think dealing with them is our main objective.


The receipt and handling of delivery failures and bounces is already
well handled in Mailman 3 and results in a `bounce event` being stored.
It is what happens after that that is missing.

In Mailman 2.1 this is simpler in a way because addresses are local to a
list. I.e., there is no connection between an address subscribed to one
list and the same address subscribed to another list so the whole
process is compartmentalized by list and controlled by list settings.
These settings are:

The maximum member bounce score before the member's subscription is
disabled. This value can be a floating point number.
(Details for bounce_score_threshold)
        
The number of days after which a member's bounce information is
discarded, if no new bounces have been received in the interim. This
value must be an integer.
(Edit bounce_info_stale_after)
        
How many Your Membership Is Disabled warnings a disabled member should
get before their address is removed from the mailing list. Set to 0 to
immediately remove an address from the list once their bounce score
exceeds the threshold. This value must be an integer.
(Edit bounce_you_are_disabled_warnings)
        
The number of days between sending the Your Membership Is Disabled
warnings. This value must be an integer.
(Edit bounce_you_are_disabled_warnings_interval)
        
These settings are per list both to give list admins control and because
optimum values depend on list traffic patterns.

Mailman 3 currently does nothing after storing a 'bounce event'. That's
the issue. It's more complex with Mailman 3 because an address is
global, but somehow, it needs to be determined that we are receiving
bounces for a particular address and at some point delivery to that
address needs to be disabled (or a probe sent to the address and
delivery disabled if the probe bounces) and then periodically, notices
need to be sent to the address, and after some time if the user hasn't
responded and re-enabled delivery, perhaps the address should be removed
from the list, although this latter point is not so important in MM 3.

The additional complexity is because an address may be subscribed to
more than one list and optimum values for settings such as
bounce_score_threshold and bounce_info_stale_after depend on list
traffic patterns. Compromises will need to be made.

-- 
Mark Sapiro <m...@msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan
_______________________________________________
Mailman-Developers mailing list -- mailman-developers@python.org
To unsubscribe send an email to mailman-developers-le...@python.org
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9

Reply via email to