[New-bugs-announce] [issue41010] email.message.EmailMessage.get_body

patrick totzke report at bugs.python.org
Wed Jun 17 12:06:53 EDT 2020


New submission from patrick totzke <patricktotzke at gmail.com>:

I am trying to use EmailMessage.get_body() on the attached spam email.
Although that message may be malformed, I believe that this method should fail gracefully.

To reproduce

```
with open('msg', 'rb') as f: 
    m = email.message_from_binary_file(f, _class=email.message.EmailMessage) 

 m.get_body()                                                                                               
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-21-0d3554e3ba7a> in <module>
----> 1 m.get_body()

/usr/lib/python3.8/email/message.py in get_body(self, preferencelist)
   1016         best_prio = len(preferencelist)
   1017         body = None
-> 1018         for prio, part in self._find_body(self, preferencelist):
   1019             if prio < best_prio:
   1020                 best_prio = prio

/usr/lib/python3.8/email/message.py in _find_body(self, part, preferencelist)
    987         if subtype != 'related':
    988             for subpart in part.iter_parts():
--> 989                 yield from self._find_body(subpart, preferencelist)
    990             return
    991         if 'related' in preferencelist:

/usr/lib/python3.8/email/message.py in _find_body(self, part, preferencelist)
    987         if subtype != 'related':
    988             for subpart in part.iter_parts():
--> 989                 yield from self._find_body(subpart, preferencelist)
    990             return
    991         if 'related' in preferencelist:

/usr/lib/python3.8/email/message.py in _find_body(self, part, preferencelist)
    976 
    977     def _find_body(self, part, preferencelist):
--> 978         if part.is_attachment():
    979             return
    980         maintype, subtype = part.get_content_type().split('/')

AttributeError: 'str' object has no attribute 'is_attachment'

```

I am on Python 3.8.3 on debian testing.

----------
components: Library (Lib)
files: msg
messages: 371755
nosy: patrick totzke
priority: normal
severity: normal
status: open
title: email.message.EmailMessage.get_body
type: crash
versions: Python 3.8
Added file: https://bugs.python.org/file49241/msg

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue41010>
_______________________________________


More information about the New-bugs-announce mailing list