我使用 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 对 IMAP 文件夹的模拟意味着带有多个标签的邮件会在多个文件夹中显示为单独的副本。某些消息数据和元数据在文件夹之间共享,但其他元数据则不然。
在邮件上放置 \Deleted
标志将从邮件中删除当前文件夹/标签。如果这是最后一个标签,则该邮件将被存档并可在所有邮件
文件夹中找到。
使用 IMAP 将邮件移至“废纸篓”或“垃圾箱”文件夹(通过 MOVE
或 COPY
*1),或添加“废纸篓”标签相当于给它贴上垃圾标签(并且应该自动删除所有其他标签)。然后它会留在那里并在 30 天内被清除。
要永久删除已删除的邮件,您需要选择
“Bin”或“Trash”文件夹(其名称取决于区域设置,您可能需要list
才能找到它),然后添加 \Deleted
标志,该标志对应于永久删除。
在您的示例中,您已将邮件移至垃圾箱,并从邮件中多余地删除了当前标签。您需要切换到“废纸篓”文件夹才能将其永久删除。
*1:如果您使用 UID MOVE
或 UID COPY
,UIDPLUS
响应应返回您在“废纸篓”文件夹中的新 UID。可用于永久删除项目。
注意:Gmail 网络界面中的 IMAP 设置 UI 理论上具有自定义此行为的设置,但根据我的经验,更改这些设置没有实际效果。
关于python - 使用 Python imaplib 永久删除 Gmail 电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55518565/