Imaplib:如何从Gmail中删除电子邮件?

时间:2010-06-10 09:45:50

标签: python email imaplib

我正在尝试做一些简单的事情,比如使用python的imaplib将电子邮件从收件箱移动到垃圾箱。但是,我遇到了一些问题,我不知道如何解决它们。

连接并登录服务器后,我选择了INBOX邮箱,我就这样得到了ID列表:

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

我们假设我从那里拿了一个Id,X,让我们假设那封电子邮件是对话的一部分。当我做的时候

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

我可以按照我的预期看到消息,但是当我这样做时

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

它会删除所有对话,而不仅仅是消息!此外,我不想完全删除电子邮件,我想将其发送到垃圾箱,所以我尝试过:

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

但它只是将邮件复制到垃圾箱,然后删除整个会话,所以我丢失了电子邮件!

问题:如何使用imaplib从Gmail中删除电子邮件,而不删除整个会话?

1 个答案:

答案 0 :(得分:2)

我认为您的对话并未真正删除:默认情况下,从最后一个文件夹中删除每个IMAP的邮件会归档对话。看看设置 - >转发和POP / IMAP - >当邮件被标记为已删除并从最后一个可见的IMAP文件夹中删除时: