【问题标题】:How can I get python's Maildir to read the updated state?如何让 python 的 Maildir 读取更新的状态?
【发布时间】:2012-11-18 20:21:43
【问题描述】:

我在 python 中编写了一些代码来打开 Maildir,将“新”消息更新为“cur”,刷新并关闭邮件目录。问题是,当我在此之后使用脚本再次读取相同的 Maildir 时,它仍然将所有电子邮件都读取为新邮件!

(如果我直接查看操作系统,我可以看到邮件文件已从 Maildir/new 移动到 Maildir/cur)

有什么想法吗?

mail = Maildir(self._mail_dir, factory=MaildirMessage)
mail.lock()
for i, (key, m) in enumerate(mail.iteritems()):
  if m.get_subdir() == "new":
    m.set_subdir("cur")
    m.add_flag("S")  # Message seen
    mail[key] = m
  do_something_else(m) 
mail.flush() 
mail.close()

提前致谢!

【问题讨论】:

    标签: python email maildir


    【解决方案1】:

    终于找到了解决办法。基本上我只需要传递 factory=None 而不是 factory=MaildirMessage

    阅读下面链接中的文档,似乎 factory=None 实际上选择了 MaildirMessage 工厂,但显然它也增加了额外的行为。

    http://docs.python.org/2/library/mailbox.html#maildir

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-05
      • 1970-01-01
      • 2021-07-05
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      相关资源
      最近更新 更多