【发布时间】:2019-08-26 08:44:49
【问题描述】:
我正在使用 Gmail 规则将某些电子邮件标记为“删除”以标记为永久删除。使用这个 python 脚本,我可以成功地将它们移动到 Gmail Bin,但是一旦它们在那里,我就无法永久删除它们。
有什么想法吗?我已经尝试在 Gmail imap 设置中设置自动删除,但没有改变任何东西。
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。如果您不先将其移至垃圾箱,则最终将删除文件夹标签并将其放入“所有邮件”中
-
在 gmail 上默认情况下,邮件将在 30 天内从垃圾箱中过期,这对于某些用例来说可能已经足够了。
-
@Max 不是我在用
mail.store("1:*",'+X-GM-LABELS', '\\Trash') mail.store("1:*", "+FLAGS", '\\Deleted')做的,将它移到 bin 并设置已删除标志吗? -
您在当前文件夹中的“副本”上设置了已删除标志,而不是垃圾箱副本。 (IMAP 文件夹的 Gmail 模拟不完善且复杂。)您需要
select("[Gmail]/Bin")(注意本地化),找到邮件,然后执行相同的mail.store命令,但 UID 在垃圾箱中。如果您要删除所有内容,这很简单。 -
@Max 非常感谢您的帮助。哇永远不会意识到“副本”。是的,gmails imap 实现需要带有警告标签!
标签: python python-2.7 gmail imap imaplib