mailman: cope with mails containing broken unicode

See https://pagure.io/fedora-infrastructure/issue/8824 for details. This
enables the hotfix on staging only to enable testing.

Signed-off-by: Nils Philippsen <nils@redhat.com>
This commit is contained in:
Nils Philippsen 2020-04-27 12:35:24 +02:00
parent d9cf4bbca7
commit 0543b8addc
2 changed files with 29 additions and 0 deletions

View file

@ -0,0 +1,19 @@
--- a/src/mailman/email/message.py
+++ b/src/mailman/email/message.py
@@ -47,6 +47,16 @@ class Message(email.message.Message):
def __setstate__(self, values):
self.__dict__ = values
+ def as_string(self):
+ # Work around for https://bugs.python.org/issue27321 and
+ # https://bugs.python.org/issue32330.
+ try:
+ value = email.message.Message.as_string(self)
+ except (KeyError, UnicodeEncodeError):
+ value = email.message.Message.as_bytes(self).decode(
+ 'ascii', 'replace')
+ return value
+
@property
def sender(self):
"""The address considered to be the author of the email.

View file

@ -155,6 +155,16 @@
- packages
- mailman
## install hotfix for e-mails containing broken unicode
## see issue https://pagure.io/fedora-infrastructure/issue/8824
## see upstream merge request https://gitlab.com/mailman/mailman/-/merge_requests/350
- name: hotfix - let mailman cope with e-mails containing broken unicode
patch: src=files/hotfix/mailman3/mailman3-broken-unicode-emails.patch dest=/usr/lib/python3.4/site-packages/mailman/email/message.py
when: env == "staging"
tags:
- mailman
- hotfix
- patches
#
# Initialize mailman (must be done after settings up the DBs)