summaryrefslogtreecommitdiff
path: root/src/mailman/chains/hold.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/chains/hold.py')
-rw-r--r--src/mailman/chains/hold.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mailman/chains/hold.py b/src/mailman/chains/hold.py
index 70f6873f6..15219c8ec 100644
--- a/src/mailman/chains/hold.py
+++ b/src/mailman/chains/hold.py
@@ -164,7 +164,12 @@ class HoldChain(TerminalChainBase):
if original_subject is None:
original_subject = _('(no subject)')
else:
- original_subject = oneline(original_subject, in_unicode=True)
+ # This must be encoded to the mailing list's perferred charset,
+ # ignoring incompatible characters, otherwise when creating the
+ # notification messages, we could get a Unicode error.
+ oneline_subject = oneline(original_subject, in_unicode=True)
+ bytes_subject = oneline_subject.encode(charset, 'replace')
+ original_subject = bytes_subject.decode(charset)
substitutions = dict(
listname = mlist.fqdn_listname,
subject = original_subject,