我正在使用 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 文件夹(通过MOVE
或COPY
*1),或添加垃圾箱标签对应于为其提供垃圾箱标签(并应自动删除所有其他标签)。然后它将坐在那里并在 30 天内被清除。
要永久删除已删除的邮件,您需要到select
Bin 或 Trash 文件夹(其名称取决于区域设置,您可能需要list
找到它),然后添加\Deleted
标志,这对应于永久删除。
在您的示例中,您已将邮件移至垃圾箱,并从邮件中多余地删除了当前标签。您需要切换到废纸篓文件夹以将其永久删除。
*1:如果您使用UID MOVE
或UID COPY
,则UIDPLUS
响应应返回垃圾箱文件夹中的新 UID,您可以使用该 UID 永久删除项目。
注意:Gmail 网络界面中的 IMAP 设置 UI 理论上具有自定义此行为的设置,但根据我的经验,更改它们没有实际效果。
添加回答
举报
0/150
提交
取消