为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Python imaplib 永久删除 Gmail 电子邮件

使用 Python imaplib 永久删除 Gmail 电子邮件

狐的传说 2021-12-29 10:17:48
我正在使用 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, datamail.select("delete")type, data = mail.search(None, 'ALL')mail.store("1:*",'+X-GM-LABELS', '\\Trash')mail.store("1:*", "+FLAGS", '\\Deleted')mail.expunge()
查看完整描述

1 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

总结一下问题:

Gmail 对 IMAP 文件夹的模拟意味着带有许多标签的邮件在许多文件夹中显示为单独的副本。一些邮件数据和元数据在文件夹之间共享,但其他元数据不是。

\Deleted标志放在邮件上会从邮件中删除当前文件夹/标签。如果这是最后一个标签,则此邮件将被归档并在All Mail文件夹中可用。

使用 IMAP 将邮件移动到垃圾箱或 Bin 文件夹(通过MOVECOPY*1),或添加垃圾箱标签对应于为其提供垃圾箱标签(并应自动删除所有其他标签)。然后它将坐在那里并在 30 天内被清除。

要永久删除已删除的邮件,您需要到selectBin 或 Trash 文件夹(其名称取决于区域设置,您可能需要list找到它),然后添加\Deleted标志,这对应于永久删除。

在您的示例中,您已将邮件移至垃圾箱,并从邮件中多余地删除了当前标签。您需要切换到废纸篓文件夹以将其永久删除。

*1:如果您使用UID MOVEUID COPY,则UIDPLUS响应应返回垃圾箱文件夹中的新 UID,您可以使用该 UID 永久删除项目。

注意:Gmail 网络界面中的 IMAP 设置 UI 理论上具有自定义此行为的设置,但根据我的经验,更改它们没有实际效果。


查看完整回答
反对 回复 2021-12-29
  • 1 回答
  • 0 关注
  • 531 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号