diff options
| author | bwarsaw | 2001-12-27 06:51:34 +0000 |
|---|---|---|
| committer | bwarsaw | 2001-12-27 06:51:34 +0000 |
| commit | 3d7db3cab742d8f8248dd44d90f55f451793c81b (patch) | |
| tree | 5d3bfd74ab6c9c8ccfc213c86d7aa65364983019 | |
| parent | c8a029828285a686dd1999f110d0bc528618ab74 (diff) | |
| download | mailman-3d7db3cab742d8f8248dd44d90f55f451793c81b.tar.gz mailman-3d7db3cab742d8f8248dd44d90f55f451793c81b.tar.zst mailman-3d7db3cab742d8f8248dd44d90f55f451793c81b.zip | |
The long-awaited rewrite of the bounce processing system. We've
(hopefully) managed to make this both more understandable and much
simpler. Simpler even than recent mailman-developer threads (and yet,
I still believe this will work :). The algorithm is explained in the
Mailman/Gui/Bounce.py, i.e. admin/bounce category, help string.
Specifically here,
Get rid of DEFAULT_MINIMUM_REMOVAL_DATE,
DEFAULT_MINIMUM_POST_COUNT_BEFORE_BOUNCE_ACTION,
DEFAULT_AUTOMATIC_BOUNCE_ACTION, and
DEFAULT_MAX_POSTS_BETWEEN_BOUNCES.
Add an explanation of the new bounce scoring algorithm. Add
DEFAULT_BOUNCE_SCORE_THRESHOLD, DEFAULT_BOUNCE_INFO_STALE_AFTER,
DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS and
DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL.
| -rw-r--r-- | Mailman/Defaults.py.in | 56 |
1 files changed, 37 insertions, 19 deletions
diff --git a/Mailman/Defaults.py.in b/Mailman/Defaults.py.in index ebb4b1f67..b9304af9c 100644 --- a/Mailman/Defaults.py.in +++ b/Mailman/Defaults.py.in @@ -760,6 +760,9 @@ DEFAULT_OBSCURE_ADDRESSES = 1 # these headers. ALLOW_RFC2369_OVERRIDES = 0 +# Check for administrivia in messages sent to the main list? +DEFAULT_ADMINISTRIVIA = 1 + ##### @@ -791,29 +794,44 @@ DEFAULT_PLAIN_DIGEST_KEEP_HEADERS = ['message', 'date', 'from', # Should we do any bounced mail response at all? DEFAULT_BOUNCE_PROCESSING = 1 -# Minimum number of days that address has been undeliverable before -# we take the automatic bounce action. -DEFAULT_MINIMUM_REMOVAL_DATE = 5 +# Bounce processing works like this: when a bounce from a member is received, +# we look up the `bounce info' for this member. If there is no bounce info, +# this is the first bounce we've received from this member. In that case, we +# record today's date, and initialize the bounce score (see below for initial +# value). +# +# If there is existing bounce info for this member, we look at the last bounce +# receive date. If this date is farther away from today than the `bounce +# expiration interval', we throw away all the old data and initialize the +# bounce score as if this were the first bounce from the member. +# +# Otherwise, we increment the bounce score. If we can determine whether the +# bounce was soft or hard (i.e. transient or fatal), then we use a score value +# of 0.5 for soft bounces and 1.0 for hard bounces. Note that we only score +# one bounce per day. If the bounce score is then greater than the `bounce +# threshold' we disable the member's address. +# +# After disabling the address, we can send warning messages to the member, +# providing a confirmation cookie/url for them to use to re-enable their +# delivery. After a configurable period of time, we'll delete the address. +# When we delete the address due to bouncing, we'll send one last message to +# the member. -# Minimum number of delivery failure notices for an account before we -# consider doing the automatic bounce action. -DEFAULT_MINIMUM_POST_COUNT_BEFORE_BOUNCE_ACTION = 3 +# Bounce scores greater than this value get disabled. +DEFAULT_BOUNCE_SCORE_THRESHOLD = 5.0 -# 0 means do nothing -# 1 means disable and notify the list admin -# 2 means disable and don't notify the list admin -# 3 means remove and notify -DEFAULT_AUTOMATIC_BOUNCE_ACTION = 1 +# Bounce information older than this interval is considered stale, and is +# discarded. +DEFAULT_BOUNCE_INFO_STALE_AFTER = days(7) -# Maximum number of posts that can go by w/o a bounce before we figure -# delivery failures to a particular recipient have been resolved. This -# needs to account for the big lag between delivery attempt and issuance of -# the failure notice. We recommend a value representing the maximum number -# of messages you'd reasonably expect an average list to get in 1 hour. -DEFAULT_MAX_POSTS_BETWEEN_BOUNCES = 5 +# The number of notifications to send to the disabled/removed member before we +# remove them from the list. A value of 0 means we remove the address +# immediately (with one last notification). Note that the first one is sent +# upon change of status to disabled. +DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS = 3 -# Check for administrivia in messages sent to the main list? -DEFAULT_ADMINISTRIVIA = 1 +# The interval of time between disabled warnings. +DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL = days(7) # List of addresses (lhs of the @) that likely come only from MTAs bouncing # messages. This is used in the bounce detector and MailCommandHandler.py to |
