У меня есть программа, которая вытащит вложения файлов в общий сетевой ресурс. У меня это работает как в отдельных частях, так и в нескольких частях сообщений электронной почты.PDF Вложение Downloader не работает с base64 Кодировка
Я недавно получил mutlipart, что показывает, как:
Content-Type: application/pdf Content-Disposition: attachment; filename="=?utf-8?B?SW52b2ljZShzKS5wZGY=?=" Content-Transfer-Encoding: base64
Это неисправное в записи файла из-за файл.
Вот код, где я пишу PDF:
fp = open(os.path.join(path, filename), 'wb') fp.write(part.get_payload(decode=True)) fp.close()
Однако я думаю, что часть работает должным образом, и это провал на записи файла ... Я не знаю, как перевести это имя файла в читаемый текст. Вот код, я использую, чтобы определить имя файла:
filename = part.get_filename() filename_zero, fileext =os.path.splitext(filename)
filename = str(var_seq) + "_" + filename_zero + fileext
Любое понимание того, что я пропускаю очень ценится.
Insight: рассмотреть [ 'email.header.decode_header()'] (https://docs.python.org/2/library/email.header. HTML # email.header.decode_header). Альтернатива: рассмотрите http://stackoverflow.com/questions/7406102/create-sane-safe-filename-from-any-unsafe-string –
'email.header.decode_header()' именно то, что мне нужно. Большое спасибо @ Robᵩ – AlliDeacon