【问题标题】:Python, extract raw contents from mbox filePython,从 mbox 文件中提取原始内容
【发布时间】: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


    【解决方案1】:

    如果你想要内容不做任何修改,你可以简单地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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-12
      • 2011-03-15
      • 1970-01-01
      • 2012-02-15
      • 2016-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多