开发者

Using python imaplib to "delete" an email from Gmail?

Can you delete emails wit开发者_运维技巧h imaplib? If so how?


Use the store method (of the IMAP4 object representing your connection) to set the r'\Deleted' flag on the message number you want to delete, as the example in the docs show; then the expunge method to actually perform all deletions so marked.

Gmail's implementation of IMAP has subtly different semantics, by default, but if you want you can tweak it to behave much more like a traditional IMAP implementation (where the above sequence works) -- basically you have to enable the "Advanced IMAP Controls" lab, then follow the instructions at the URL I gave to get exactly the IMAP semantics you desire (physically deleting rather than archiving "deleted" mails, waiting or not for expunge, and so forth).


Deleting an email over IMAP is performed in two phases:

  • mark one or more items for deletion: imap.store(msg_no, '+FLAGS', '\\Deleted')
  • expunge the mailbox: imap.expunge()

(imap is your IMAP4 object)


imap.uid('STORE', list_of_msgno , '+FLAGS', '(\Deleted)')  
imap.expunge() 

i.e

imap.uid('STORE', '2, 4, 9, 12' , '+FLAGS', '(\Deleted)') 

Here (2, 4, 9, 12) are uid of the messages which are going to be deleted.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜