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

Microsoft Graph API获取昨日收件总数异常问题求助

获取指定邮箱昨日邮件总数的正确Graph API用法

问题分析

你之前的两个请求都存在语法或逻辑错误,导致无法正确过滤昨日邮件:

  • 第一个请求用eq匹配日期,而ReceivedDateTime是带时间戳的字段,eq只能匹配精确到秒的特定时间,无法覆盖全天;同时URI里有多余的&?,还存在邮箱地址拼写错误。
  • 第二个请求的URI存在多余的&?,且缺少必要的请求头,导致search和$count无法协同生效。

正确解决方案

方法1:用$filter指定时间范围

通过ge(大于等于)和lt(小于)定义昨日UTC时间的完整范围,同时修正URI语法并添加必要请求头:

请求URI:

https://graph.microsoft.com/v1.0/users/mailbox@microsoft.com/messages?$filter=ReceivedDateTime ge {{formatDateTime(addDays(utcNow(),-1),'yyyy-MM-ddT00:00:00Z')}} and ReceivedDateTime lt {{formatDateTime(utcNow(),'yyyy-MM-ddT00:00:00Z')}}&$count=true

必须添加请求头:

ConsistencyLevel: eventual

这个范围会匹配从昨日0点UTC到今日0点UTC之间收到的所有邮件,完全覆盖昨日时段。

方法2:用search参数简化过滤

修正search参数的语法,移除多余的URI符号,同样添加必要请求头:

请求URI:

https://graph.microsoft.com/v1.0/users/mailbox@microsoft.com/messages?$count=true&search=received:yesterday

必须添加请求头:

ConsistencyLevel: eventual

received:yesterday是Graph内置的搜索语法,会自动匹配昨日收到的邮件,无需手动计算时间范围。

核心注意点

  • 两种方法都必须添加ConsistencyLevel: eventual请求头,否则$count=true无法返回过滤后的正确总数,只会返回所有邮件的数量。
  • 确保你的账号或应用已拥有Mail.Read权限,否则会触发权限错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:52:14