【发布时间】:2017-11-26 19:43:22
【问题描述】:
在mbox 文件中,我存储了一些电子邮件:它们也可以使用 MIME。它们必须按原样在mbox 文件中提取,无需修改,使用Python3 脚本。我尝试了以下代码:
import mailbox
for message in mailbox.mbox('mboxfile'):
mstring = message.as_string()
print(mstring)
这似乎打印了电子邮件的原始内容。 mbox 中的电子邮件并不总是将\r\n 用于所有新行:有时它们只有\n。无论如何,在message.as_string() 输出中始终使用\n,如manual page 中所指定。
手册中还写到(关于as_string()):
请注意,提供此方法是为了方便,可能不是在应用程序中序列化消息的最有用方法,尤其是在处理多条消息时。
我无法完全理解这个建议可能意味着什么。我的mbox 文件显然包含几封电子邮件,我想将它们全部提取出来。最重要的是,我想获得 exactly 存储在那里的相同原始电子邮件,而不需要 任何 修改并为每一行保留其 original @ 987654333@ 或\n,就好像我在mbox 文件上使用了cat。所以:
- 我的代码是执行此操作的正确方法吗?
- 如果不是,正确的方法是什么?
【问题讨论】:
标签: python email parsing mime mbox