Библиотека электронной почты Python — разбор вложений сообщения/rfc822

Я использую python 2.7 и пытаюсь анализировать электронные письма, которые пересылаются как вложения в папку «Входящие». Кажется, я не могу разобрать заголовки/электронную почту прикрепленного сообщения. Я вижу это как «сообщение/rfc822», но когда я пытаюсь его разобрать, оно показывает пустое.

Я получаю сообщения через генератор, и он отлично работает, как показано ниже:

res, data = self.imap_client.fetch(msg_id, '(RFC822)')
msg = email.message_from_string(data[0][1])
yield msg

Затем это сообщение передается в другую функцию, где я извлекаю вложения (через walk())

attachments = []
for part in msg.walk():
    content_disposition = part.get('Content-Disposition', None)
    if content_disposition:
        attachments.append(Attachment(part, email_date))
return attachments

Класс вложений выглядит следующим образом:

class Attachment(object):
    def __init__(self, attachment, email_date=None):
        self.content_type = attachment.get_content_type()
        self.attachment = attachment
        fname = None
        if self.content_type.startswith('message/'):
            self.data = attachment.as_string()
            fname = 'mail.eml'
        else:
            self.data = attachment.get_payload(decode=True)
        try:
            self.size = len(self.data)
        except TypeError:
            self.size = 0
        if self.attachment.get_filename():
            fname = self.attachment.get_filename().strip().replace(' ', '-')
        self.name = re.sub(r'(?u)[^-\w.]', '', fname)
        self.date = email_date

Я пытался вытащить вложение с помощью get_payload и передать его (как указано выше), используя только as_string(), но безрезультатно. Когда я пытаюсь проанализировать вложение электронной почты, он не получает никаких данных:

if attachment.content_type == "message/rfc822":
    msg = email.message_from_string(attachment.data)
    print msg.get('Subject', None)

person callingconvention    schedule 20.08.2018    source источник