Я использую python imaplib для загрузки и сохранения вложений в электронной почте. Но когда в электронном письме есть электронное письмо с прикрепленным файлом, x.get_payload() имеет Nonetype. Я думаю, что эти типы писем отправляются с использованием некоторых почтовых клиентов. Поскольку имя файла отсутствует, я попытался изменить имя файла в заголовке, а затем «Content-Disposition». Переименованный файл получает открыт и когда я пытаюсь писать в этот файл, используяКак сохранить электронную почту, прикрепленную в другой, используя python smtplib?
fp.write(part.get_payload(decode=True))
он говорит строку или буфер ожидается, но Nonetype найдено.
>>>x.get_payload()
[<email.message.Message instance at 0x7f834eefa0e0>]
>>>type(part.get_payload())
<type 'list'>
>>>type(part.get_payload(decode=True))
<type 'NoneType'>
Я удалил расшифровывает = True, и я получил список объектов
x.get_payload()[0]
<email.message.Message instance at 0x7f834eefa0e0>
я пытался редактирования файла в случае электронной почты, который в качестве вложения.
if part.get('Content-Disposition'):
attachment = str(part.get_filename()) #get filename
if attachment == 'None':
attachment = 'somename.mail'
attachment = self.autorename(attachment)#append (no: of occurences) to filename eg:filename(1) in case file exists
x.add_header('Content-Disposition', 'attachment', filename=attachment)
attachedmail = 1
if attachedmail == 1:
fp.write(str(x.get_payload()))
else:
fp.write(x.get_payload(decode=True)) #write contents to the opened file
и файл содержит содержание имя объекта файла приведен ниже
[ < email.message.Message instance at 0x7fe5e09aa248 > ]
Как я могу писать содержание этих писем, прикрепленных к файлам?