summaryrefslogtreecommitdiff
path: root/Mailman/Handlers
diff options
context:
space:
mode:
Diffstat (limited to 'Mailman/Handlers')
-rw-r--r--Mailman/Handlers/Decorate.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/Mailman/Handlers/Decorate.py b/Mailman/Handlers/Decorate.py
index 0b135b5ce..23826cdd1 100644
--- a/Mailman/Handlers/Decorate.py
+++ b/Mailman/Handlers/Decorate.py
@@ -99,15 +99,16 @@ def process(mlist, msg, msgdata):
# charset, then utf-8. It's okay if some of these are duplicates.
for cset in (lcset, mcset, 'utf-8'):
try:
- payload = payload.encode(cset)
- except UnicodeError:
- pass
- else:
+ pld = payload.encode(cset)
del msg['content-transfer-encoding']
del msg['content-type']
- msg.set_payload(payload, cset)
+ msg.set_payload(pld, cset)
wrap = False
break
+ # 'except' should be here because set_payload() may fail for
+ # 'euc-jp' which re-encode to 'iso-2022-jp'. :(
+ except UnicodeError:
+ pass
except (LookupError, UnicodeError):
pass
elif msg.get_content_type() == 'multipart/mixed':