我尝试从收件箱文件夹中删除邮件,但是,但是当我切换到“所有邮件”文件夹时,删除将不起作用。expunge()方法返回('OK',[None])并且消息未删除:
expunge()
('OK',[None])
>>>import imaplib >>>server = imaplib.IMAP4_SSL('imap.gmail.com','993') >>>server.login('likvidator89@gmail.com','Password') >>>server.select('inbox') >>>for i in server.search(None,'all')[1][0].split(): ... print i+"\n"+server.fetch(i,'(BODY[HEADER.FIELDS (Subject)])')[1][0][1] ... # that how i know what UID hame my message? I select by subject #.... #28 #Subject: 1 Question Has 1 Answer - Stack Overflow # # #29 #Subject: 2222222222 #... >>>server.store(29,'+FLAGS','\\Deleted') #('OK', ['29 (FLAGS (\\Seen \\Deleted))']) >>>server.expunge() #('OK', ['29']) >>> server.select('[Gmail]/All Mail') ('OK', ['47']) >>> for i in server.search(None,'all')[1][0].split(): ... print i+"\n"+server.fetch(i,'(BODY[HEADER.FIELDS (Subject)])')[1][0][1] ... #.... # #46 #Subject: 2222222222 # # #47 #Subject: 3333333333333333 # #.... >>> server.store(47,'+FLAGS','\\Deleted') ('OK', ['47 (FLAGS (\\Seen \\Deleted))']) >>> server.expunge() ('OK', [None])
就像在gmail博客网站上所说的那样,Google对IMAP的实现有些不同。当您按照说明获得更多常用语义时,是否有帮助?
对于想让Gmail的IMAP像传统IMAP提供程序一样工作的人来说,还有一些晦涩的选项:当不再可以通过IMAP看到自动删除或垃圾邮件时,可以关闭它们。 IMAP协议允许将邮件标记为删除,这是一种边缘状态,其中邮件仍存在于文件夹中,但计划在下次删除文件夹时将其删除。在我们的标准IMAP实施中,当您将邮件标记为已删除时,Gmail不会在该状态下徘徊- 它会立即从文件夹中删除(或自动删除)该邮件。如果要进行两阶段删除,请在启用此练习后,在“设置”中的“转发和POP / IMAP”标签下选择“不自动删除邮件”。 同样,大多数IMAP系统也不共享Gmail的邮件存档概念(将邮件发送到[Gmail] / All Mail文件夹,而不是[Gmail] / Trash)。如果您希望将未保留在其他任何可见IMAP文件夹中的已删除邮件发送到[Gmail] /垃圾箱,则可以使用“高级IMAP控件”以这种方式设置自己的偏好。在“转发和POP / IMAP”标签的“ IMAP访问:”部分中,找到“从最后一个可见的IMAP文件夹中删除邮件时:”选项。选择“将邮件移至Gmail废纸rash”。如果您想更进一步,可以选择“立即永久删除邮件”。
对于想让Gmail的IMAP像传统IMAP提供程序一样工作的人来说,还有一些晦涩的选项:当不再可以通过IMAP看到自动删除或垃圾邮件时,可以关闭它们。
IMAP协议允许将邮件标记为删除,这是一种边缘状态,其中邮件仍存在于文件夹中,但计划在下次删除文件夹时将其删除。在我们的标准IMAP实施中,当您将邮件标记为已删除时,Gmail不会在该状态下徘徊- 它会立即从文件夹中删除(或自动删除)该邮件。如果要进行两阶段删除,请在启用此练习后,在“设置”中的“转发和POP / IMAP”标签下选择“不自动删除邮件”。
同样,大多数IMAP系统也不共享Gmail的邮件存档概念(将邮件发送到[Gmail] / All Mail文件夹,而不是[Gmail] / Trash)。如果您希望将未保留在其他任何可见IMAP文件夹中的已删除邮件发送到[Gmail] /垃圾箱,则可以使用“高级IMAP控件”以这种方式设置自己的偏好。在“转发和POP / IMAP”标签的“ IMAP访问:”部分中,找到“从最后一个可见的IMAP文件夹中删除邮件时:”选项。选择“将邮件移至Gmail废纸rash”。如果您想更进一步,可以选择“立即永久删除邮件”。