关于python:PDF附件下载器不使用base64编码

PDF Attachment Downloader not working with base64 Encoding

我有一个程序,将文件附件拉入网络共享。 我在单部分和多部分电子邮件中都有这个功能。

我最近收到的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

我非常感谢您对我所缺少的任何见解。


email.header.decode_header()正是我所需要的。 非常感谢!

添加以下行:

filename = part.get_filename()
if decode_header(filename)[0][1] is not None:
filename = str(decode_header(filename)[0][0]).decode(decode_header(filename)[0][1])
filename_zero, fileext = os.path.splitext(filename)
filename = str(var_seq) +"_" + filename_zero + fileext