aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman/Archiver
diff options
context:
space:
mode:
Diffstat (limited to 'Mailman/Archiver')
-rw-r--r--Mailman/Archiver/HyperArch.py7
-rw-r--r--Mailman/Archiver/pipermail.py7
2 files changed, 12 insertions, 2 deletions
diff --git a/Mailman/Archiver/HyperArch.py b/Mailman/Archiver/HyperArch.py
index 6f66db4a..3fc5fadf 100644
--- a/Mailman/Archiver/HyperArch.py
+++ b/Mailman/Archiver/HyperArch.py
@@ -303,7 +303,12 @@ class Article(pipermail.Article):
if charset[0]=="'" and charset[-1]=="'":
charset = charset[1:-1]
try:
- body = message.get_payload(decode=True)
+ # Check Scrubber-munged payload
+ if message.get('x-mailman-scrubbed'):
+ decode = False
+ else:
+ decode = True
+ body = message.get_payload(decode=decode)
except binascii.Error:
body = None
if body and charset != Utils.GetCharSet(self._lang):
diff --git a/Mailman/Archiver/pipermail.py b/Mailman/Archiver/pipermail.py
index fac7e5ed..f27e1101 100644
--- a/Mailman/Archiver/pipermail.py
+++ b/Mailman/Archiver/pipermail.py
@@ -217,7 +217,12 @@ class Article:
self.headers[i] = message[i]
# Read the message body
- s = StringIO(message.get_payload(decode=1)\
+ # Check Scrubber-munged paylaod
+ if message.get('x-mailman-scrubbed'):
+ decode = False
+ else:
+ decode = True
+ s = StringIO(message.get_payload(decode=decode)\
or message.as_string().split('\n\n',1)[1])
self.body = s.readlines()