Python 3.x GMAIL附件文件名

时间:2015-11-12 21:11:19

标签: python-3.x filenames email-attachments gmail-imap os.path

我已经查看了大量示例代码,以便将附件下载到我的本地计算机,但没有一个正在运行,而且我被卡住了。

我可以获取邮件主题行,设置删除标记等,但不保存附件

除了这一点,一切都很好。这是我的代码,用于获取电子邮件的附件并在本地写入:

        fileName = part.get_filename()

        if bool(fileName):
            filePath = os.path.join(detach_dir, 'attachments', fileName)
            if not os.path.isfile(filePath) :
                print (fileName)
                fp = open(filePath, 'wb')
                fp.write(part.get_payload(decode=True))
                fp.close()

我认为这是我的问题。我看到的文件名不适合Windows文件名。我检查了调试,文件名是什么:

   print (part.get_filename())
   =?utf-8?Q?180=20Score=20Report=20Detail=20-=20Part=20Week=2Epdf?=

我想看到的是这样的文件名:

   180 Score Report Detail Part Week.pdf

如果我登录gmail,我可以像往常一样下载文件,文件名就像我预期的那样。有些事情是错的,我不知道为什么我会看到这种格式或如何改变它。我可以在那里看到空格ASCII 20,但不知道如何将它全部转换为"普通"?

更新: 看起来像这样。不确定是否有办法轻松提取文件名。

 print (part.as_string))

 Content-Type: application/pdf
 Content-Transfer-Encoding: Base64
 Content-Disposition: Attachment;
 Filename=
 =?utf-8?Q?180=20Score=20Report=20Detail=20-=20Part=20Week=2Epdf?=

电子邮件"主题"也有这个格式与=?utf-8?...

如何解析该字符串以使其恢复为纯ASCII文本格式?

谢谢!

0 个答案:

没有答案