You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用O365库与Python标记Outlook邮件为已读失败求助

解决O365库标记Outlook邮件为已读无效的问题

你遇到的问题核心在于:修改邮件的is_read或unread属性后,没有调用保存方法将更改同步到Exchange服务器,本地属性修改不会自动同步到云端。

修正后的代码

只需在设置属性后调用message.save()方法即可完成云端同步:

def access_mail_box(account):
    try:
        mailbox= account.mailbox()
        inbox= mailbox.inbox_folder()
        query = mailbox.new_query().on_attribute('isRead').equals(False) #获取未读邮件
        messages = inbox.get_messages(query=query,limit=config['limit'])
        return messages
    except Exception as e:
        print(f"Error in access_mail_box function: {e}")
        raise e


account = Account(credentials=(client_id, client_secret), token_backend=token_backend)
messages = access_mail_box(account)

# 遍历邮件并标记为已读
for message in messages:
    message.is_read = True
    # 也可以用 message.unread = False,二者效果一致
    message.save()  # 关键步骤:将本地修改同步到服务器

额外注意事项

  • 确保你的应用已申请Mail.ReadWrite权限,没有该权限无法修改邮件状态
  • 若处理大量邮件,可使用O365库的批量操作功能提升效率

内容的提问来源于stack exchange,提问作者TaghreedReda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 06:32:38