【发布时间】:2020-12-23 10:07:56
【问题描述】:
我正在使用下面的代码来阅读一封未读的电子邮件。
在mail.fetch 方法中,获取类型、数据作为返回参数,我们正在使用raw_email = data[0][1] 访问原始电子邮件。谁能解释为什么我们将索引硬编码为[0][1] 以获取消息?这是在不进行任何硬编码的情况下获取消息的正确方法吗?
Python 代码如下:
import imaplib
mail = imaplib.IMAP4_SSL('imap.gmail.com')
try:
mail.login(email_user, email_pass)
status, messages = mail.select("INBOX")
(retcode, emailnums) = mail.search(None,'(UNSEEN)')
if retcode == 'OK':
for emailnum in emailnums[0].split():
typ,data = mail.fetch(emailnum,'(RFC822)')
raw_email = data[0][1]
#converts byte literal to string removing b''
raw_email_string = raw_email.decode('utf-8')
email_message = email.message_from_string(raw_email_string)
【问题讨论】: