消息实例没有属性 'is_multipart'
Message instance has no attribute 'is_multipart'
我正在尝试编写一个脚本来获取 ~/Maildir
中所有邮件的内容。所以我基本上是从 this question 复制粘贴代码。以下是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
默认情况下 returns instances of rfc822.Messages, not email.Message
s; rfc822.Message
has a completely different API.
如果您想要 mailbox.Maildir
到 return email.Message
删除默认值 factory
:
maildir = mailbox.Maildir("~/Maildir", factory=None)
在 Python 3 中删除了 rfc822.Message
,因此默认 mailbox.Maildir
returns email.Message
s。
我正在尝试编写一个脚本来获取 ~/Maildir
中所有邮件的内容。所以我基本上是从 this question 复制粘贴代码。以下是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
默认情况下 returns instances of rfc822.Messages, not email.Message
s; rfc822.Message
has a completely different API.
如果您想要 mailbox.Maildir
到 return email.Message
删除默认值 factory
:
maildir = mailbox.Maildir("~/Maildir", factory=None)
在 Python 3 中删除了 rfc822.Message
,因此默认 mailbox.Maildir
returns email.Message
s。