【问题标题】:Search email sender address using Office 365 REST API使用 Office 365 REST API 搜索电子邮件发件人地址
【发布时间】:2016-04-11 16:39:05
【问题描述】:

我正在尝试从发件人的电子邮件与我的查询字符串匹配的 Office 365 返回电子邮件。我尝试使用包含的 $filter,但这引发了一个错误,说明我必须使用 $search。以下内容有效,但不限制我的搜索范围,即 /Sender/EmailAddress/Name。有什么想法吗?

https://outlook.office365.com/api/v1.0/Me/Messages?$select=Subject,Sender,From&$search="Joe Bloggs"

【问题讨论】:

  • 请贴出错误内容。
  • 在尝试 $filter 时出错,outlook.office365.com/api/v1.0/Me/… is:{ error: { code: "ErrorInvalidUrlQueryFilter", message: "'contains' 和 'startswith' 不支持过滤。请改用搜索。” } }

标签: search odata office365


【解决方案1】:

如果您使用不受支持的过滤方法,您将收到一条错误消息,类似于您得到的错误。

另外,当使用 $search 查询参数而不指定属性时,结果将搜索 Body、Sender 和 Subject 属性。在您的请求中,这将返回收件箱中在三个默认属性中的任何一个中包含您的关键字的所有邮件。

$search 系统查询选项将结果限制为仅包含与指定搜索表达式匹配的实体。您可以使用 $search 查询参数单击here 用于公共字段,如果您需要获取收件箱中从特定人员发送的所有邮件,您可以尝试以下查询:

https://outlook.office.com/api/v2.0/me/messages?$search="from:help@contoso.com"

上述请求在 v1.0 中也有效,但消息的返回属性不一样(与 v2.0 相比)。

【讨论】:

    【解决方案2】:

    根据Resource reference for the Mail, Calendar, Contacts, and Task REST APIs,Office 365 REST API 有自己的Advanced Query Syntax 用于$search 选项。由此看来,您似乎可以使用 from: 限定符来限制您的搜索。

    GET https://outlook.office.com/api/v2.0/me/messages?$search="from:Joe Bloggs"
    

    请注意,URI 应该进行编码(即,双引号和空格需要进行百分比编码)。此外,这些示例使用 API 的 v2.0。我不确定这是否适用于 v1.0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 2020-10-02
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      相关资源
      最近更新 更多