通过python和IMAP4从收件箱中删除电子邮件
我对所有这些编码都是初学者,作为一个项目的一部分,我正试图编写一些python代码,读取第一封未读的电子邮件(首先是最旧的电子邮件),打印内容,然后从收件箱中删除电子邮件,这是我的代码,但我不能让它删除电子邮件,我已经在谷歌上搜索了好几个小时了,什么地方都没有找到通过python和IMAP4从收件箱中删除电子邮件,python,email,python-3.x,Python,Email,Python 3.x,我对所有这些编码都是初学者,作为一个项目的一部分,我正试图编写一些python代码,读取第一封未读的电子邮件(首先是最旧的电子邮件),打印内容,然后从收件箱中删除电子邮件,这是我的代码,但我不能让它删除电子邮件,我已经在谷歌上搜索了好几个小时了,什么地方都没有找到 #readyourmail.py import imaplib import email def readmail(): try: mail = imaplib.IMAP4_SSL('imap.gmail.co
#readyourmail.py
import imaplib
import email
def readmail():
try:
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('email','password')
mail.select('inbox')
result, data = mail.uid('search', None, "ALL")
latest_email_uid = data[0].split()[0]
result, email_data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = email_data[0][1]
raw_email_string = raw_email.decode('utf-8')
email_message = email.message_from_string(raw_email_string)
for part in email_message.walk():
if part.get_content_type() == "text/plain":
body = part.get_payload(decode=True)
print(body.decode('utf-8'))
else:
continue
mail.store(latest_email_uid,'+FLAGS','\\Deleted')
mail.expunge()
except:
print("No valid emails")
谢谢你的帮助 由于您使用UID命令获取邮件,因此必须使用UID命令删除邮件 请尝试下面的代码
mail.uid('STORE', latest_email_uid , '+FLAGS', '(\Deleted)')
mail.expunge()