我正在尝试编写一个脚本,它可以获取~/Maildir
中所有邮件的内容。所以我基本上从this question复制了代码。以下是mailbox.py
的全部内容:
import mailbox
maildir = mailbox.Maildir("~/Maildir");
for message in maildir:
print message["subject"]
if message.is_multipart():
print "ok"
它确实打印了第一条消息的主题,但是不是打印“确定”然后就死了,
AttributeError: Message instance has no attribute 'is_multipart'
我做错了什么?
答案 0 :(得分:1)
你忘了给你的Python版本命名所以我猜 - 它是Python 2.7,对吧?在Python 2.7 mailbox.Maildir
默认returns rfc822.Messages个实例,而不是email.Message
s; rfc822.Message
有完全不同的API。
如果您希望mailbox.Maildir
返回email.Message
,请删除默认factory
:
maildir = mailbox.Maildir("~/Maildir", factory=None)
在Python 3中删除了rfc822.Message
,因此mailbox.Maildir
默认返回email.Message
。