这是我的代码:
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])')
我只选择第一封电子邮件。如何全选?
您正在尝试解码已解码的对象。你有一个str,不再需要从utf-8解码。
只需去掉.decode('utf-8')部分:
header_data = data[1][0][1]
至于你的fetch()电话,你只是明确要求第一条信息。如果要检索更多消息,请使用范围。请参阅文档:
The message_set o