问题描述
众所周知,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