Python exchangelib - 将项目标记为已读

时间:2017-12-26 23:22:42

标签: python exchangewebservices 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 个答案:

答案 0 :(得分:2)

在挖掘模块文件时自己找到答案。显然你必须在标记后“保存”该项目。 最后,我的代码应如下所示:

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)