diff options
Diffstat (limited to 'Mailman')
-rw-r--r-- | Mailman/Message.py | 19 | ||||
-rw-r--r-- | Mailman/Version.py | 4 |
2 files changed, 21 insertions, 2 deletions
diff --git a/Mailman/Message.py b/Mailman/Message.py index 5d68e7ef..20610dc7 100644 --- a/Mailman/Message.py +++ b/Mailman/Message.py @@ -59,6 +59,25 @@ class Generator(email.Generator.Generator): return self.__class__(fp, self._mangle_from_, self.__children_maxheaderlen, self.__children_maxheaderlen) + # This is the _handle_message method with the fix for bug 7970. + def _handle_message(self, msg): + s = StringIO() + g = self.clone(s) + # The payload of a message/rfc822 part should be a multipart sequence + # of length 1. The zeroth element of the list should be the Message + # object for the subpart. Extract that object, stringify it, and + # write it out. + # Except, it turns out, when it's a string instead, which happens when + # and only when HeaderParser is used on a message of mime type + # message/rfc822. Such messages are generated by, for example, + # Groupwise when forwarding unadorned messages. (Issue 7970.) So + # in that case we just emit the string body. + payload = msg.get_payload() + if isinstance(payload, list): + g.flatten(msg.get_payload(0), unixfrom=False) + payload = s.getvalue() + self._fp.write(payload) + class Message(email.Message.Message): diff --git a/Mailman/Version.py b/Mailman/Version.py index 30036394..f39931cc 100644 --- a/Mailman/Version.py +++ b/Mailman/Version.py @@ -16,7 +16,7 @@ # USA. # Mailman version -VERSION = '2.1.18' +VERSION = '2.1.18-1' # And as a hex number in the manner of PY_VERSION_HEX ALPHA = 0xa @@ -31,7 +31,7 @@ MINOR_REV = 1 MICRO_REV = 18 REL_LEVEL = FINAL # at most 15 beta releases! -REL_SERIAL = 0 +REL_SERIAL = 1 HEX_VERSION = ((MAJOR_REV << 24) | (MINOR_REV << 16) | (MICRO_REV << 8) | (REL_LEVEL << 4) | (REL_SERIAL << 0)) |