MIME消息结构解析和分析

时间:2012-01-28 13:32:22

标签: python email imap mime

我正在寻找现有的库或代码示例,从mime消息结构中提取相关部分,以便对这些部分的文本内容进行分析。

我会解释:

我正在编写一个库(在Python中),它是需要通过IMAP迭代大量电子邮件的项目的一部分。对于每条消息,它需要确定需要哪些mime部分才能分析需要最少解析的消息的文本内容(例如,更喜欢text / plain over text / html或rich text)并且不需要重复(即如果text / plain存在,则忽略匹配的text / html)。它还需要解决嵌套部分(文本附件,转发消息等)以及所有这些,而无需下载整个消息体(占用太多时间和带宽)。最终目标是稍后检索那些部分,以便对这些消息的文本内容执行某些统计和模式分析(不包括任何标记,元数据,二进制数据等)。

我见过的库和示例需要完整的消息体,以便组装消息结构并理解消息的内容。我试图使用IMAP FETCH命令与BODYSTRUCTURE数据项的响应来实现这一点。

BODYSTRUCTURE应该包含足够的信息来实现我的目标,但是虽然结构和返回的数据在相关的RFC(3501,2822,2045)中正式记录,但是嵌套,组合和各种怪癖的数量都加起来以完成任务非常乏味和错误修剪。

有没有人知道任何可以帮助实现此代码或任何代码示例的库(最好是在Python中,但任何语言都可以)?

2 个答案:

答案 0 :(得分:1)

模块电子邮件和子模块email.mime有什么不能做的吗?

http://docs.python.org/library/email.html#module-email

答案 1 :(得分:0)

为了完整起见而回答我自己的问题并关闭这个问题。

我找不到任何符合要求的现有库。我最终编写了自己的代码来获取BODYSTRUCTURE树,解析它并将其存储在内部结构中。这给了我控制,我需要决定我需要实际下载哪些消息的确切部分,并考虑各种情况,如附件,转发,冗余部分(纯文本与HTML)等。