用Python或其他语言解析转发邮件?

2 投票
2 回答
1621 浏览
提问于 2025-04-17 05:49

我有一些以txt格式保存的邮件,这些邮件被转发了很多次。

我想提取邮件的内容,也就是邮件的主要部分。这个内容应该在层级的最后面,对吧?(如果我错了,请有人指出来)。

但是,邮件模块并没有提供提取内容的方法。如果我创建一个消息对象,这个对象里没有内容的字段。

有没有什么办法可以做到这一点?有没有现成的模块,或者你能想到的其他方法,当然除了最简单的从文本文件的最后开始查找,直到找到邮件头为止。

如果其他语言中有简单或直接的方法/模块(我对此表示怀疑),也请告诉我!

非常感谢任何帮助!

2 个回答

0

试着在解析后的消息对象上使用 get_payload 方法。如果只有一条消息,返回的结果会是一个字符串;如果有多条消息,返回的结果会是一个消息对象的列表。

可以这样做:

messages = parsed_message.get_payload()
while type(messages) <> Types.StringType:
    messages = messages[-1].get_payload()
0

这个邮件模块没有提供提取内容的方法。如果我创建一个消息对象,这个对象里没有用于存放正文内容的字段。

其实是有的。你可以看看Python的文档和示例,特别是要关注一下 walkpayload 这两个方法。

撰写回答