aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Sapiro <mark@msapiro.net>2016-07-11 16:43:25 -0700
committerMark Sapiro <mark@msapiro.net>2016-07-11 16:43:25 -0700
commitba66ce7f13827b858125131fa638c87266d9cf99 (patch)
treeeeadefe75db2711f0d2c3dbe07c0a7eb2dd29288
parent0e21a4e0ab1908c83792c171b0ee4a6777ff9591 (diff)
downloadmailman2-ba66ce7f13827b858125131fa638c87266d9cf99.tar.gz
mailman2-ba66ce7f13827b858125131fa638c87266d9cf99.tar.xz
mailman2-ba66ce7f13827b858125131fa638c87266d9cf99.zip
Use backslashreplace when encoding for header_filter_rules.
-rw-r--r--Mailman/Handlers/SpamDetect.py2
-rw-r--r--NEWS8
2 files changed, 9 insertions, 1 deletions
diff --git a/Mailman/Handlers/SpamDetect.py b/Mailman/Handlers/SpamDetect.py
index c7b8d9e7..1ea295a6 100644
--- a/Mailman/Handlers/SpamDetect.py
+++ b/Mailman/Handlers/SpamDetect.py
@@ -86,7 +86,7 @@ def getDecodedHeaders(msg, cset='utf-8'):
# unicode it as iso-8859-1 which may result in a garbled
# mess, but we have to do something.
uvalue += unicode(frag, 'iso-8859-1', 'replace')
- headers += '%s: %s\n' % (h, uvalue.encode(cset, 'replace'))
+ headers += '%s: %s\n' % (h, uvalue.encode(cset, 'backslashreplace'))
return headers
diff --git a/NEWS b/NEWS
index 1900d06e..65600663 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,14 @@ Here is a history of user visible changes to Mailman.
New Features
+ - RFC 2047 encoded headers are now decoded and re-encoded in the charset of
+ the list's preferred language for matching by header_filter_rules using
+ errors='backslashreplace' instead of the former errors='replace'. This
+ means that characters that can't be represented in the charset of the
+ list's preferred language will now be represented as '\uxxxx' escapes
+ rather than '?' enabling regexps to be constructed to match specific
+ characters or ranges. (LP: #558155)
+
- Thanks to Jim Popovitch REMOVE_DKIM_HEADERS can now be set to 3 to
preserve the original headers as X-Mailman-Original-... before removing
them.