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

Posted

技术标签:

【中文标题】Imaplib:如何从 Gmail 中删除电子邮件?【英文标题】:Imaplib: how to delete an email from Gmail? 【发布时间】:2011-03-02 02:15:51 【问题描述】:

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

连接并登录服务器后,我选择INBOX邮箱,然后我通过这种方式获取ids列表:

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】:

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

【讨论】:

以上是关于Imaplib:如何从 Gmail 中删除电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

使用 imaplib 在 gmail 中删除电子邮件时出现问题

使用 Python 和 imaplib 在 GMail 中移动电子邮件

使用imaplib下载多个附件

Python 3:通过 uid (imaplib) 将电子邮件移至垃圾箱

Imaplib从带有附件的gmail转发邮件(Python)

Python imaplib 获取正文电子邮件 gmail