我正在尝试编写一个脚本,该脚本可以获取~/Maildir
中所有邮件的内容。所以我基本上从这个问题中复制粘贴了代码。以下是mailbox.py
的全部内容:
import mailbox
maildir = mailbox.Maildir("~/Maildir");
for message in maildir:
print message["subject"]
if message.is_multipart():
print "ok"
它确实打印了第一条消息的主题,但不是打印"ok",而是死亡声明
AttributeError: Message instance has no attribute 'is_multipart'
我做错了什么?
你忘了命名你的Python版本,所以让我猜猜——它是Python 2.7,对吧?在 Python 2.7 中,mailbox.Maildir
默认返回 rfc822 的实例。消息,而不是email.Message
;rfc822.Message
有一个完全不同的 API。
如果您希望mailbox.Maildir
返回email.Message
删除默认factory
:
maildir = mailbox.Maildir("~/Maildir", factory=None)
在Python 3中,rfc822.Message
被删除,因此默认情况下mailbox.Maildir
返回email.Message
s。