如何让python的Maildir读取更新后的状态?

时间:2012-11-18 20:21:43

标签: python email maildir

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

提前致谢!

1 个答案:

答案 0 :(得分:1)

终于找到了修复。基本上我只需要传递 factory = None 而不是 factory = MaildirMessage

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

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