2017-12-26 23 views
1

Pythonのexchangelibモジュールを使用して、自分のメールボックスで1つのタスクを達成しようとしています - 特定の件名が含まれていて、未読の状態の場合、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一部を除いて働いているように見えます。要求されたフォルダに正常に移動したにもかかわらず、メッセージは未読のままです。

ここでは簡単なことがありません。私はグーグルと公式のモジュールのドキュメントを使用してみましたが、これに関しては空になりました。私と同じ質問の人は1人しか見つかりませんでした: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) 
関連する問題