2012-11-18 3 views
1

필자는 Python에서 Maildir을 열고, "cur"에 "새"메시지를 업데이트하고, mail dir을 플러시하고 닫는 코드를 작성했습니다. 문제는 스크립트를 사용하여 아주 똑같은 Maildir을 다시 읽을 때 여전히 모든 이메일을 새로운 것으로 읽는 것입니다!파이썬의 Maildir에서 업데이트 된 상태를 읽으려면 어떻게해야합니까?

모든 아이디어 (실제로 직접 OS에서보고있는 경우, 나는 메일 파일이 Maildir 형식/CUR 새로운 Maildir 형식 /에서 이동 된 것을 볼 수 있습니다)?

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

마지막으로 해결책을 찾았습니다. 기본적으로 난 단지 공장 = 없음 공장 = MaildirMessage 대신 전달해야합니다.

아래 링크에서 설명서를 읽는 것 같습니다. 공장 = 없음은 실제로 MaildirMessage 팩토리를 선택하지만 외관상 추가 동작을 추가합니다.

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

관련 문제