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 | |
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.
-rw-r--r-- | nixpkgs/pkgs/servers/mail/mailman/package.nix | 1 | ||||
-rw-r--r-- | overlays/patches/mailman/no-base64.diff | 34 |
2 files changed, 35 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/mail/mailman/package.nix b/nixpkgs/pkgs/servers/mail/mailman/package.nix index 5b9666b59f93..b316d69f85b9 100644 --- a/nixpkgs/pkgs/servers/mail/mailman/package.nix +++ b/nixpkgs/pkgs/servers/mail/mailman/package.nix @@ -47,6 +47,7 @@ buildPythonPackage rec { url = "https://gitlab.com/mailman/mailman/-/commit/9613154f3c04fa2383fbf017031ef263c291418d.patch"; sha256 = "0vyw87s857vfxbf7kihwb6w094xyxmxbi1bpdqi3ybjamjycp55r"; }) + ../../../../../overlays/patches/mailman/no-base64.diff ./log-stderr.patch ]; 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)) |