我用Gmail规则把某些邮件标记为“删除”,以标记永久删除。有了这个python脚本,我可以成功地将它们移到gmailbin,但是一旦它们在那里,我就无法永久删除它们。在
有什么想法吗?我试过在gmailimap设置中设置auto-expunge开关,但没有改变任何东西。在
mail = imaplib.IMAP4_SSL('imap.gmail.com', 993)
try:
rv, data = mail.login(EMAIL_ACCOUNT, EMAIL_PASS)
except imaplib.IMAP4.error as e:
print "LOGIN FAILED!!! "
print e
sys.exit(1)
print rv, data
mail.select("delete")
type, data = mail.search(None, 'ALL')
mail.store("1:*",'+X-GM-LABELS', '\\Trash')
mail.store("1:*", "+FLAGS", '\\Deleted')
mail.expunge()
总结一下这些问题:
Gmail对IMAP文件夹的模拟意味着一封带有多个标签的邮件在许多文件夹中显示为一个单独的副本。某些邮件数据和元数据在文件夹之间共享,但其他元数据不共享。在
在邮件上放置
\Deleted
标志将从邮件中删除当前文件夹/标签。如果这是最后一个标签,则此邮件将被存档并可在All Mail
文件夹中使用。在使用IMAP将邮件移动到Trash或Bin文件夹(通过
MOVE
或COPY
*1),或者添加垃圾箱标签对应于给它一个垃圾箱标签(并且应该自动删除所有其他标签)。然后它会坐在那里,30天内清洗干净。在要永久删除已丢弃的邮件,您需要
select
垃圾箱或垃圾箱文件夹(其名称取决于区域设置,您可能需要list
才能找到它),然后添加与永久删除相对应的\Deleted
标志。在在您的示例中,您已将邮件移到垃圾箱中,并从邮件中冗余地删除了当前标签。你需要切换到废纸篓文件夹来永久删除它。在
*1:如果您使用
UID MOVE
或UID COPY
,则UIDPLUS
响应应返回垃圾箱文件夹中的新UID,您可以使用该UID永久删除项目。在注意:Gmail的web界面中的IMAP设置界面理论上有定制这种行为的设置,但根据我的经验,更改这些设置并没有实际效果。
相关问题 更多 >
编程相关推荐