这是我的代码:
import imaplib
from email.parser import HeaderParser
conn = imaplib.IMAP4_SSL('imap.gmail.com')
conn.login('example@gmail.com', 'password')
conn.select()
conn.search(None, 'ALL')
data = conn.fetch('1', '(BODY[HEADER])')
header_data = data[1][0][1].decode('utf-8')
此时我收到错误消息
AttributeError: 'str' object has no attribute 'decode'
Python 3 不再有解码,对吗?我怎样才能解决这个问题?
此外,在:
data = conn.fetch('1', '(BODY[HEADER])')
我只选择第一封电子邮件。如何全选?
原文由 user4530588 发布,翻译遵循 CC BY-SA 4.0 许可协议
您正在尝试解码一个 已经解码 的对象。你有一个
str
,不再需要从 UTF-8 解码。只需删除
.decode('utf-8')
部分:至于您的
fetch()
电话,您明确要求仅获取第一条消息。如果要检索更多消息,请使用范围。请参阅 文档: