不使用m.expunge删除消息

时间:2016-11-19 08:14:51

标签: python-3.x imap email-integration imaplib

我在这里研究了很多问题和答案,从我可以看到我的代码是正确的。但出于某种原因,我选择的邮件没有被删除。

我的代码是:

m = imaplib.IMAP4_SSL("imap-mail.outlook.com")
m.login("MY_EMAIL","MY_PWORD")
m.select("Sent")
resp, data = m.uid("search", None, "ALL")
uid = data[0].split()[-1]

#Can also get message content with lines 
# resp,data = m.uid('fetch',uid,"(BODY[HEADER])")  
# print(data)

m.store(uid, "+FLAGS", "\\Deleted")                #Works fine to here
m.expunge()                                        #This doesn't delete message
m.close()
m.logout()

如果我将m.expunge()行更改为print(m.expunge()),我会获得元组

  

('确定',[无])

即使“OK”响应,邮件仍在邮箱中。 我不确定为什么会发生这种情况

1 个答案:

答案 0 :(得分:0)

您正在使用UID来识别消息,因此您还需要使用UID命令来更改\ Deleted标志:

m.uid('STORE' uid, "+FLAGS", "\\Deleted")

您目前正在尝试使用相同的UID设置已删除的邮件序列号,该UID可能不存在,或者指的是完全不同的邮件。