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

如何使用Microsoft Graph API多条件查询邮件?

解决Microsoft Graph API多条件筛选邮件的问题

原查询的问题分析

第一个$filter查询的错误

  1. 参数名写错:把$filter写成了$(filter,多了个左括号,导致参数无法被API识别
  2. toRecipients是对象数组(每个元素包含emailAddress.address字段),不能直接用in匹配字符串,必须用any()方法遍历数组匹配邮箱地址

第二个$search查询的错误

  1. 时间范围写法不符合$search语法规则,received的范围需用..连接,而非>=和<=
  2. 部分场景下需确保邮箱搜索功能已启用,且请求权限满足要求

正确的查询写法

写法一:使用$filter精准筛选

GET https://graph.microsoft.com/v1.0/me/messages?$filter=ReceivedDateTime ge 2023-06-01T00:00:00Z and ReceivedDateTime le 2023-06-19T23:59:59Z and toRecipients/any(r: r/emailAddress/address eq 'c.smith@companyname.com')

注意点:

  • 时间格式加上时区标识Z(UTC时间),避免时区差异导致筛选结果偏差
  • toRecipients/any(r: r/emailAddress/address eq 'xxx')是遍历收件人数组、匹配指定邮箱的正确语法

写法二:使用$search模糊搜索(适合灵活场景)

GET https://graph.microsoft.com/v1.0/me/messages?$search="to:c.smith@companyname.com received:2023-06-01..2023-06-19"

注意点:

  • $search的时间范围用起始日期..结束日期格式
  • 使用$search需请求Mail.Read权限,部分租户可能需开启邮箱高级搜索功能

额外注意事项

  • 若返回结果为空,先确认目标时间段内确实存在发送到该邮箱的邮件
  • 检查请求权限:至少需要Mail.ReadBasic或Mail.Read权限
  • 结果过多时,可加$top参数控制每页返回数量,比如&$top=50

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 03:12:45