Graph API 是否支持将自定义标头用作搜索过滤器?

问题描述

众所周知,EWS 提供对 MessageClass 的支持,可在搜索具有特定 MessageClass 值的电子邮件时使用。

Graph API 是否也支持用户邮箱中搜索电子邮件的类似功能

解决方法

对消息集合使用 $search,您可以根据特定消息属性中的值搜索消息。 搜索结果按消息发送的日期和时间排序。 $search 请求最多返回 250 个结果。

示例请求 - https://graph.microsoft.com/v1.0/me/messages?$search="pizza" (GET)

请参阅search parameter documentation以更好地理解。

此外,除此之外,您还可以利用 Microsoft Search API 来搜索 Outlook 邮件。

请参阅文档 here 中的示例 1。

如果这有帮助,请告诉我。

,

ItemClass 不是图中的第一类属性,因此如果您想在过滤器中使用它,您需要使用 MAPI 消息类属性的 singleValueExtendedProperties 定义并对其进行过滤,例如

https://graph.microsoft.com/v1.0/me/mailFolders('Inbox')/messages?$filter=singleValueExtendedProperties/any(ep:ep/id eq 'String 0x001a' and ep/value eq 'IPM.Note')

Graph 的一个痛点是它只允许您通过 Messages 端点访问特定的 MessageClass 和它们的子类。

,

使用扩展属性,我们可以使用消息类来过滤邮箱存储中的电子邮件。 以下链接对他们非常有用,他们计划将基于 EWS 的应用程序迁移到基于图形的应用程序。

https://gsexdev.blogspot.com/2020/03/migrating-your-mailbox-searches-in-ews.html