您想接收来自 Gmail 的电子邮件。尝试了以下代码:
import imaplib, email
def read_email_from_gmail():
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('mymail@gmail.com','mypass')
mail.select('inbox')
type, data = mail.search(None, 'ALL')
mail_ids = data[0]
id_list = mail_ids.split()
first_email_id = int(id_list[0])
latest_email_id = int(id_list[-1])
for i in range(latest_email_id,first_email_id, -1):
type, data = mail.fetch(str(i), '(RFC822)' )
for response_part in data:
if isinstance(response_part, tuple):
test = str(response_part)
msg = email.message_from_string(test)
email_subject = msg['subject']
email_from = msg['from']
print('From : ' + email_from + '\n')
print('Subject : ' + email_subject + '\n')
read_email_from_gmail()
它没有用。如何实施?
PS(编者注:移自评论)
但让我们以这段代码为例。启动时出现以下错误:
print('From : ' + email_from + '\n');
TypeError: can only concatenate str (not "NoneType") to str".
通过替换print('From : ' + email_from + '\n')为更正print(email_from)。
结果,代码循环,输出None. 此外,问题明确指出“如何实现”,而不是“如何修复此代码”
例子:
首先选择一个文件夹
All Mail:我们正在寻找包含以下词的电子邮件
"test":找到的字母列表
ID:读取并解析找到的字母之一:
结果: