我正在尝试使用python的imaplib
和email.feedparser
从gmail收件箱中获取附件。该电子邮件由外部方生成并发送给我们,因此我无法控制它。
问题是我尝试解析的邮件msg.get_content_maintype()
返回'text'
而不是'multitype'
。因此,uuencoded附件与消息的其余部分连接在一起,我看不到将其从email.message.Message
中拉出来的简便方法。
我是如何从这样的电子邮件中提取附件的?
如果有任何帮助,电子邮件中包含“由Microsoft MimeOLE制作V6.00.3790.4862”。 Thunderbird在呈现此电子邮件时也遇到了问题,并且无法确定它是否有附件。否则,该邮件在Outlook和Gmail Web客户端中看起来不错。
答案 0 :(得分:0)
正如email.parser.FeedParser documentation所述,您可以使用_factory
参数来提供自己的Message
课程。如果此消息由“由Microsoft MimeOLE制作... blablabla”组成,您可以将自己的类派生自email.message.Message
,将其替换为正确的类。
我认为可以安全地预期此特定情况下的消息将始终是多部分的。