在Python中解析mbox中的电子邮件内容
这是我用来解析我家目录中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教程,正好可以回答你的问题。