MIME消息结构解析与分析

0 投票
2 回答
1154 浏览
提问于 2025-04-17 11:17

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

我来解释一下:

我正在写一个库(用Python),这个库是一个项目的一部分,项目需要通过IMAP处理大量的电子邮件。对于每一封邮件,它需要确定哪些mime部分是需要的,以便分析邮件的文本内容,同时尽量减少解析的工作量(比如,优先选择text/plain而不是text/html或富文本),并且避免重复(也就是说,如果有text/plain,就忽略对应的text/html)。它还需要处理嵌套部分(比如文本附件、转发的邮件等),而且这一切都要在不下载整个邮件内容的情况下完成(因为这样会耗费太多时间和带宽)。最终的目标是只提取这些部分,以便对邮件的文本内容进行一些统计和模式分析(不包括任何格式、元数据、二进制数据等)。

我看到的库和示例都需要完整的邮件内容来组装消息结构并理解邮件的内容。我想通过IMAP FETCH命令的响应,使用BODYSTRUCTURE数据项来实现这个目标。

BODYSTRUCTURE应该包含足够的信息来实现我的目标,但尽管相关的RFC(3501, 2822, 2045)中对结构和返回数据有官方文档说明,但由于嵌套的层次、组合和各种小问题,使得这个任务变得非常繁琐且容易出错。

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

2 个回答

1

有没有什么是你用模块 email 和它的子模块 email.mime 不能做到的呢?

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

0

为了完整起见,我自己回答一下这个问题,也为了结束这个讨论。

我找不到任何现成的库能满足我的需求。最后,我自己写了代码来获取邮件的BODYSTRUCTURE树,解析它,并把它存储在内部结构中。这样我就能掌控哪些具体的部分需要下载,还能考虑到各种情况,比如附件、转发邮件、重复的部分(纯文本和HTML格式)等等。

撰写回答