2017-12-26 22 views
1

Python의 exchangelib 모듈을 사용하여 사서함에서 하나의 작업을 수행하려고합니다. 특정 제목이 포함되어 있고 '읽지 않음'상태 인 경우 특정 전자 메일을 폴더로 이동하는 방법입니다.Python exchangelib - 항목을 읽음으로 표시

while True: 
    print("Checking inbox...") 
    for msg in acc.inbox.filter(subject="Kontrol fra EVT...", is_read=False): 
     if "SOS" in msg.text_body: 
      pass 
     else: 
      msg.is_read = True 
      print("Moving to EVT folder...") 
      msg.move(archive) 
      time.sleep(0.5) 
    time.sleep(5) 

msg.is_read = True 부분을 제외한 모든 항목이 작동하는 것처럼 보입니다. 필요한 폴더로 이동되었지만 메시지는 읽지 않은 상태로 남아 있습니다.

나는 여기에서 간단한 것을 놓치고 있다고 생각합니다. 나는 인터넷 검색을 시도하고 공식적인 모듈의 문서를 사용했지만이 점에 관해서는 비어있게되었다. 내 질문과 동일한 질문을 한 사람 만 찾았습니다. Mark email as read with exchangelib

고마워요!

답변

1

모듈 파일을 파헤 치면서 대답을 찾았습니다. 분명히 항목을 신고 한 후에 항목을 "저장"해야합니다. 결국 내 코드는 다음과 같아야합니다.

while True: 
    print("Checking inbox...") 
    for msg in acc.inbox.filter(subject="Kontrol fra EVT...", is_read=False): 
     if "SOS" in msg.text_body: 
      pass 
     else: 
      msg.is_read = True 
      msg.save() 
      print("Moving to EVT folder...") 
      msg.move(archive) 
      time.sleep(0.5) 
    time.sleep(5)