diff options
| author | Barry Warsaw | 2011-05-01 12:44:23 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2011-05-01 12:44:23 -0400 |
| commit | cab8aea12c63fe4bcf8930e9b2f53012d2a74ee8 (patch) | |
| tree | b348573e40c969c3ae1f24387c1a6ebbf78c5d35 /src/mailman/config | |
| parent | a90ca4ce77d99460ffd36a366cea0162869df783 (diff) | |
| download | mailman-cab8aea12c63fe4bcf8930e9b2f53012d2a74ee8.tar.gz mailman-cab8aea12c63fe4bcf8930e9b2f53012d2a74ee8.tar.zst mailman-cab8aea12c63fe4bcf8930e9b2f53012d2a74ee8.zip | |
Start the enablement of bounce detection.
* Move VERP header extraction to mailman.app.bounces, and ports the
implementation to the get_verp() function.
* Restore the [mta] verp_regexp value which got lost along the way.
* Move mailman.email.utils to mailman.utilities.email and add a test for
split_email()
* Move specialized_message_from_string() from test_documentation to
mailman.testing.helpers.
Diffstat (limited to 'src/mailman/config')
| -rw-r--r-- | src/mailman/config/schema.cfg | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mailman/config/schema.cfg b/src/mailman/config/schema.cfg index 030e5fc2c..a0f4baaf7 100644 --- a/src/mailman/config/schema.cfg +++ b/src/mailman/config/schema.cfg @@ -423,7 +423,7 @@ delivery_retry_period: 5d # Note that your MTA /must/ be configured to deliver such an addressed message # to mylist-bounces! verp_delimiter: + -verp_format: ${bounces}+${local}=${domain} +verp_format: ${bounces}${verp_delimiter}${local}=${domain} # For nicer confirmation emails, use a VERP-like format which encodes the # confirmation cookie in the reply address. This lets us put a more user @@ -434,6 +434,14 @@ verp_format: ${bounces}+${local}=${domain} # $cookie -- the confirmation cookie verp_confirm_format: $address+$cookie +# This regular expression unambiguously decodes VERP addresses, which will be +# placed in the To: (or other, depending on the MTA) header of the bounce +# message by the bouncing MTA. Getting this right is critical -- and tricky. +# Learn your Python regular expressions. It must define exactly three named +# groups, `bounces`, `local` and `domain`, with the same definition as above. +# It will be compiled case-insensitively. +verp_regexp: ^(?P<bounces>[^+]+?)\+(?P<local>[^=]+)=(?P<domain>[^@]+)@.*$ + # This is analogous to verp_regexp, but for splitting apart the # verp_confirm_format. MUAs have been observed that mung # |
