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.
精彩评论