我正在尝试使用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

谢谢!

最佳答案

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

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)

08-25 07:07