0

在一个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使用,如手册页中所述。

该手册还指出(大约as_string()):

请注意,提供此方法是为了方便,可能不是在应用程序中序列化消息的最有用方法,尤其是在处理多条消息时。

我无法完全理解这个建议可能意味着什么。我的mbox文件显然包含几封电子邮件,我想将它们全部提取出来。最重要的是,我想获得存储在那里的完全相同的原始电子邮件,没有任何修改和保留每一行的原始 \r\n电子邮件,\n就像我catmbox文件上使用的一样。所以:

  • 我的代码是正确的方法吗?
  • 如果不是,那将是正确的方法?
4

1 回答 1

0

如果你想要内容不做任何修改,你可以简单地print()每个message

import mailbox

for message in mailbox.mbox('mboxfile.mbox'):
    print(message)

带有.mbox扩展名的文件只是很长的纯文本文件https ://en.wikipedia.org/wiki/Mbox


另请查看email用于处理电子邮件消息的模块:https ://docs.python.org/3/library/email.message.html

于 2018-06-21T08:19:29.447 回答