2

我在 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()

提前致谢!

4

1 回答 1

3

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

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

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

于 2012-11-18T22:25:06.653 回答