消息实例没有属性'is_multipart'



我正在尝试编写一个脚本,该脚本可以获取~/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.Messages。

相关内容

最新更新