使用Python的imaplib从Gmail中“删除”电子邮件?

14

您可以使用imaplib删除电子邮件吗?如果可以,应该如何操作?


2
截至2012年中期,以下任何答案都不起作用,除非您首先调整默认的imap设置--请参见https://dev59.com/vlHTa4cB1Zd3GeqPQU46 - GJ.
3个回答

22
使用store方法(表示您的连接的IMAP4对象)设置要删除的邮件编号上的r'\Deleted'标志,如文档中的示例所示;然后使用expunge方法实际执行所有标记为删除的操作。
默认情况下,Gmail对IMAP的实现具有微妙的不同语义,但如果您想,可以tweak它以更像传统的IMAP实现(其中上述序列有效)-基本上,您必须启用“高级IMAP控件”实验室,然后按照我给出的URL上的说明获取您需要的IMAP语义(物理删除而不是存档“已删除”的邮件,等待或不等待expunge等)。

19

在IMAP上删除电子邮件分为两个阶段:

  • 标记一个或多个项目以进行删除:imap.store(msg_no, '+FLAGS', '\\Deleted')
  • 清除邮箱:imap.expunge()

imap 是您的 IMAP4 对象)


这是从我的收件箱中删除我的电子邮件。但是,如果我在Gmail中搜索该项目,它仍然存在。有任何想法吗? 专门使用此功能与Gmail。 根据Python版本或Gmail设置是否有区别? - Dan Ciborowski - MSFT
它会将邮件移动到您的“垃圾箱”标签中,该标签每30天会自动清理。 - hd1

11
imap.uid('STORE', list_of_msgno , '+FLAGS', '(\Deleted)')  
imap.expunge() 
< p >即

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

这里的 (2, 4, 9, 12) 是即将被删除的消息的 uid


UID和我们从imap.search获取的是否相同? - user5319825

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接