_parsebody(): A fix for SF bug #631350, where a subobject in a
multipart/digest isn't a message/rfc822. This is legal, but counter to recommended practice in RFC 2046, $5.1.5. The fix is to look at the content type after setting the default content type. If the maintype is then message or multipart, attach the parsed subobject, otherwise use set_payload() to set the data of the other object.
This commit is contained in:
parent
00e6a02ef8
commit
5c9130ec46
|
@ -221,9 +221,13 @@ class Parser:
|
|||
# msgobj in this case is the "message/rfc822" container
|
||||
msgobj = self.parsestr(parthdrs, headersonly=1)
|
||||
# while submsgobj is the message itself
|
||||
submsgobj = self.parsestr(part)
|
||||
msgobj.attach(submsgobj)
|
||||
msgobj.set_default_type('message/rfc822')
|
||||
maintype = msgobj.get_content_maintype()
|
||||
if maintype in ('message', 'multipart'):
|
||||
submsgobj = self.parsestr(part)
|
||||
msgobj.attach(submsgobj)
|
||||
else:
|
||||
msgobj.set_payload(part)
|
||||
else:
|
||||
msgobj = self.parsestr(part)
|
||||
container.preamble = preamble
|
||||
|
|
Loading…
Reference in New Issue