Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过python和IMAP4从收件箱中删除电子邮件_Python_Email_Python 3.x - Fatal编程技术网

通过python和IMAP4从收件箱中删除电子邮件

通过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

我对所有这些编码都是初学者,作为一个项目的一部分,我正试图编写一些python代码,读取第一封未读的电子邮件(首先是最旧的电子邮件),打印内容,然后从收件箱中删除电子邮件,这是我的代码,但我不能让它删除电子邮件,我已经在谷歌上搜索了好几个小时了,什么地方都没有找到

#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()