在Python中解析mbox中的电子邮件内容

0 投票
2 回答
1575 浏览
提问于 2025-04-18 03:08

这是我用来解析我家目录中mbox内容的代码。

import sys
import mailbox

def gen_summary(filename):
    mbox = mailbox.mbox(filename)
    for message in mbox:
       subj = message['subject']
       sender = message['from'] 
       content = message.get_payload()
       print subj,sender
       print(content)

主题和发件人打印得很好,但内容却像下面这样打印出来:

[<email.message.Message instance at 0x7f831f3df758>, <email.message.Message instance at 0x7f831f3e43f8>]

实际的内容是下面的文字:

Xyz.abc.com
Lmn.pqr.com
Def.ghi.com

我的目标是写一个脚本,接受用户的所有来邮件,处理这些内容,然后把结果发回给发件人。如果有更好的方法,请告诉我。

2 个回答

0

这个消息的内容是分成多个部分的。我检查了一下消息的内容长度,发现是“2”,也就是说它有两个部分。

然后我分别打印了这两个部分。

接着,我从第一个部分中提取了内容,使用了 message.get_payload()[0].get_payload()。结果和我预期的一样:

Xyz.abc.com
Lmn.pqr.com
Def.ghi.com
0

我有使用Outlook的经验,在那里,消息是一个MailItem的实例,它有一些方法和属性可以使用,所以你可以像这样访问它:Msg.Subject(主题)、Msg.Body(正文)、Msg.To(收件人)等等。

关于Mailbox,有一个mbox的Python教程,正好可以回答你的问题。

撰写回答