【问题标题】:Move to Gmail Archive - Python Imaplib移动到 Gmail 存档 - Python Imaplib
【发布时间】:2016-07-06 19:27:56
【问题描述】:

我正在尝试编写一个脚本,在获取其文本后将特定电子邮件移动到存档,但是我已经查看了所有地方并尝试了很多解决方案。我的理解是,当邮件被归档时,它的所有标签都会被删除,它只出现在 All Mail 文件夹中。

这是我当前尝试删除与邮件相关的任何标签的代码,我相信这应该存档邮件,但它似乎什么也没做。运行此代码时没有错误。

one, two = self.connection.store(msg_id, '-X-GM-LABELS', "\Inbox \Important \Sent \Seen")

谢谢!

【问题讨论】:

  • 尝试用括号括起来 flags 参数,并使其成为原始字符串,以便保留反斜杠:r"(\Inbox \Important \Sent \Seen)"
  • 不幸的是,这给出了相同的输出!
  • 向“[Gmail]/All Mail”邮箱发出 UID MOVE 命令可以解决问题。您必须首先使用 LIST 找到该邮箱的名称,除非您只为一个语言环境执行此操作。我不知道如何说服 python imaplib 发出 UID MOVE。

标签: python gmail imap imaplib


【解决方案1】:

Delete 标志与 Trash 标志不同,因此如果您设置 Delete,它将通过删除任何多余的标签将其移动到存档中

self.connection.store(msg_id, '+FLAGS', '\\Deleted') 

【讨论】:

  • 它不会将其移至“存档”,而是永久删除。请参阅thepythoncode.com/article/deleting-emails-in-python 和许多其他有关此命令的示例(我自己使用它,它确实会删除消息)。将邮件移至垃圾箱后,您可以手动恢复。
  • UPD:看起来有时候你是对的!这取决于您在高级 IMAP 控件 (googlesystem.blogspot.com/2008/10/…) 中的设置:您可以将其设置为仅归档邮件,或永久删除它们。事实上我错了,现在必须再次查找电子邮件并永久删除它们(它们只是从我的标签文件夹中删除)。
猜你喜欢
  • 2011-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-26
  • 2012-12-11
  • 2014-10-14
  • 2017-01-04
相关资源
最近更新 更多