4

我正在尝试使用 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部分。尽管已成功移动到所需的文件夹,但该邮件仍未阅读。

我相信我在这里遗漏了一些简单的东西。我尝试使用谷歌搜索并使用官方模块的文档,但在这方面是空的。只能找到一个与我有相同问题的人:使用 exchangelib 将电子邮件标记为已读

谢谢!

4

1 回答 1

6

在挖掘模块文件时自己找到了答案。显然,您必须在标记后“保存”该项目。最后我的代码应该是这样的:

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)
于 2017-12-26T23:46:44.797 回答