diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-02-08 15:23:41 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-06-05 20:43:49 +0000 |
commit | a5f1446caf5e3196cf00519834818e370e4d859c (patch) | |
tree | f1490adba4cfa0ab1f981fabb0075aff41ba4a77 /overlays | |
parent | 3cf4e10ee3120a4b69c754b4927b1afbc218f449 (diff) | |
download | nixlib-a5f1446caf5e3196cf00519834818e370e4d859c.tar nixlib-a5f1446caf5e3196cf00519834818e370e4d859c.tar.gz nixlib-a5f1446caf5e3196cf00519834818e370e4d859c.tar.bz2 nixlib-a5f1446caf5e3196cf00519834818e370e4d859c.tar.lz nixlib-a5f1446caf5e3196cf00519834818e370e4d859c.tar.xz nixlib-a5f1446caf5e3196cf00519834818e370e4d859c.tar.zst nixlib-a5f1446caf5e3196cf00519834818e370e4d859c.zip |
mailman: don't re-encode outgoing mail
This can break DKIM.
Diffstat (limited to 'overlays')
-rw-r--r-- | overlays/patches/mailman/no-base64.diff | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/overlays/patches/mailman/no-base64.diff b/overlays/patches/mailman/no-base64.diff new file mode 100644 index 000000000000..2deef3ec3cf0 --- /dev/null +++ b/overlays/patches/mailman/no-base64.diff @@ -0,0 +1,34 @@ +diff --git i/src/mailman/email/message.py w/src/mailman/email/message.py +index fd6a28144..693f8d2b7 100644 +--- i/src/mailman/email/message.py ++++ w/src/mailman/email/message.py +@@ -49,6 +49,11 @@ class Message(email.message.Message): + self.__dict__ = values + + def as_string(self): ++ try: ++ return email.message.Message.as_bytes(self).decode('utf-8') ++ except UnicodeEncodeError: ++ pass ++ + # Work around for https://bugs.python.org/issue27321 and + # https://bugs.python.org/issue32330. + try: +diff --git i/src/mailman/mta/connection.py w/src/mailman/mta/connection.py +index ebcc19eb4..e69fe4c6a 100644 +--- i/src/mailman/mta/connection.py ++++ w/src/mailman/mta/connection.py +@@ -127,10 +127,9 @@ class Connection: + if self._connection is None: + self._connect() + self._login() +- # smtplib.SMTP.sendmail requires the message string to be pure ascii. +- # We have seen malformed messages with non-ascii unicodes, so ensure +- # we have pure ascii. +- msgtext = msgtext.encode('ascii', 'replace').decode('ascii') ++ # smtplib.SMTP.sendmail requires the message string to be ++ # bytes or an ASCII string. ++ msgtext = msgtext.encode('utf-8') + try: + log.debug('envsender: %s, recipients: %s, size(msgtext): %s', + envsender, recipients, len(msgtext)) |