我尝试从收件箱文件夹中移除邮件并且一切正常,但是当我切换到所有邮件文件夹时,删除不起作用。 expunge()
方法返回('OK', [None])
,并没有删除消息:使用imaplib删除Gmail中的电子邮件时出现问题
>>>import imaplib
>>>server = imaplib.IMAP4_SSL('imap.gmail.com','993')
>>>server.login('[email protected]','Password')
>>>server.select('inbox')
>>>for i in server.search(None,'all')[1][0].split():
... print i+"\n"+server.fetch(i,'(BODY[HEADER.FIELDS (Subject)])')[1][0][1]
...
# that how i know what UID hame my message? I select by subject
#....
#28
#Subject: 1 Question Has 1 Answer - Stack Overflow
#
#
#29
#Subject: 2222222222
#...
>>>server.store(29,'+FLAGS','\\Deleted')
#('OK', ['29 (FLAGS (\\Seen \\Deleted))'])
>>>server.expunge()
#('OK', ['29'])
>>> server.select('[Gmail]/All Mail')
('OK', ['47'])
>>> for i in server.search(None,'all')[1][0].split():
... print i+"\n"+server.fetch(i,'(BODY[HEADER.FIELDS (Subject)])')[1][0][1]
...
#....
#
#46
#Subject: 2222222222
#
#
#47
#Subject: 3333333333333333
#
#....
>>> server.store(47,'+FLAGS','\\Deleted')
('OK', ['47 (FLAGS (\\Seen \\Deleted))'])
>>> server.expunge()
('OK', [None])
我曾尝试您的方法,但是当我删除一条消息时,该消息将具有一个INBOX标签,而如果我们从Gmail本身删除该消息则不会有任何标签。 – 2011-06-17 05:41:23
我知道这是一个非常古老的线程,但为了帮助其他任何与Rahul的问题上面,你只需要删除“收件箱标签”,然后再添加垃圾标签。即'imap.store(num,'-X-GM-LABELS','\\ Inbox')' – Shogan 2014-01-19 19:00:47