在 imap_tools 中分配标志

Assigning flags in imap_tools

我正在使用 imap_tools,但出现 NameError: name 'imap_tools' is not defined 错误。我以为这可能是我导入它的方式,但我直接从他们的回购协议中复制了它,但它不起作用。有人遇到过这个吗?

from imap_tools import MailBox, AND
with MailBox('imap.gmail.com').login('foobar@gmail.com', 'spam', initial_folder='INBOX') as mailbox:
  for msg in mailbox.fetch('SINCE 08-May-2022'):
    flags = (imap_tools.MailMessageFlags.SEEN, imap_tools.MailMessageFlags.FLAGGED, 'TAG1')
    Mailbox.flag(mailbox.uids(AND(seen=False)), flags, True)

我在为“标志”赋值时在第 3 行遇到错误(我已经设法打印了 UID,所以这不是登录问题

我也试过了

flags = MailBox(imap_tools.MailMessageFlags.SEEN, imap_tools.MailMessageFlags.FLAGGED, 'TAG1')

flags = AND(imap_tools.MailMessageFlags.SEEN, imap_tools.MailMessageFlags.FLAGGED, 'TAG1')

谢谢

您已经导入了 imap_tools 的两个部分,特别是 MailBox 和 AND 函数,因此您可以在您的工作区中使用它们,但是您实际上并没有导入 imap_tools 模块本身。如果您在脚本顶部添加 import imap_tools,您应该能够访问模块的其余部分。

编辑:This article 如果您刚开始,应该可以帮助您了解更多背景信息。