From ba66ce7f13827b858125131fa638c87266d9cf99 Mon Sep 17 00:00:00 2001 From: Mark Sapiro Date: Mon, 11 Jul 2016 16:43:25 -0700 Subject: Use backslashreplace when encoding for header_filter_rules. --- Mailman/Handlers/SpamDetect.py | 2 +- NEWS | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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. -- cgit v1.2.3