开发者

Imaplib: how to delete an email from Gmail?

I am trying to do something as simple as moving an email from inbox to trash using the imaplib o开发者_运维百科f python. However, I am having some problems and I don't know how to solve them.

After connect and login into the server, I select the INBOX mailbox and I get the ids list this way:

typ, ids = imap_object.search(None, 'INBOX')
ids_list = ids[0].split()

Let's suppose I take an Id from there, X, and let's suppose that that email is part of a conversation. When I do

imap_object.fetch (X, '(RFC822)')[1]

I can see just the message, as I expected, but when I do

imap.store(X, '+FLAGS', r'(\Deleted)')

it deletes all the conversation, not just the message!. Also, I don't want to completely remove the email, I want to send it to trash, so I have tried:

imap.copy(X, '[Gmail]/Papelera')
imap.store(X, '+FLAGS', r'(\Deleted)')
imap.expunge()

but it copies just the message to trash, and after that it deletes the whole conversation, so I am loosing emails!

QUESTION: How can I delete an email from Gmail using imaplib, without deleting the whole conversation?


I believe your conversation isn't really deleted: By default, deleting a message per IMAP from the last folder archives the conversation. Have a look at Settings -> Forwarding and POP/IMAP -> When a message is marked as deleted and expunged from the last visible IMAP folder:

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜