C# 使用C进行Microsoft Graph API附件搜索#

C# 使用C进行Microsoft Graph API附件搜索#,c#,outlook,microsoft-graph-api,microsoft-graph-sdks,microsoft-graph-mail,C#,Outlook,Microsoft Graph Api,Microsoft Graph Sdks,Microsoft Graph Mail,我正在尝试使用带有C#的Microsoft graph API搜索Outlook邮箱中的任何关键字,包括正文、主题、附件等。 对于主体和主体,我可以应用过滤器,但同样的方式,它不适用于附件。 请参阅下面的代码: graphClient.Me.MailFolders.Inbox.Messages.Request().Expand("attachments") .Filter($"contains(subject, '{subject}')").OrderBy("Subject").Top(30).

我正在尝试使用带有C#的Microsoft graph API搜索Outlook邮箱中的任何关键字,包括正文、主题、附件等。 对于主体和主体,我可以应用过滤器,但同样的方式,它不适用于附件。 请参阅下面的代码:

graphClient.Me.MailFolders.Inbox.Messages.Request().Expand("attachments") .Filter($"contains(subject, '{subject}')").OrderBy("Subject").Top(30).GetAsync();
我知道在过滤器中我正在传递主题,但我不确定如何搜索附件中的内容


请给我一些建议。

尚未测试您描述的场景。但是,如果您想在邮件的任何部分(发件人姓名、主题、邮件正文或任何附件)中搜索信息,您可以选择

此处的HTTP示例:

POST https://graph.microsoft.com/beta/search/query
Content-Type: application/json

{
  "requests": [
    {
      "entityTypes": [
        "microsoft.graph.message"
      ],
      "query": {
        "query_string": {
          "query": "contoso"
        }
      },
      "from": 0,
      "size": 25
    }
  ]
}

它查询登录用户邮箱中包含字符串“contoso”的邮件。

感谢您快速回复。我已经看到了你提到的链接。我需要这种行为才能在C代码中工作,而这是不可能发生的。你能帮我吗?我也试过下面的代码:
List options=newlist{newqueryoption($search”,“Work”)};var messages=await graphClient.Me.messages.Request(选项)。展开(“附件”).GetAsync()
@VinayGupta我认为您不能使用
graphClient.Me.MailFolders.Inbox.Messages.Request().Expand(“附件”)
来获取附件内容。您需要使用
graphServiceClient.Me.Messages[“messageid”].Attachments[“attachmentid”].Content.Request().GetAsync()
来获取附件的内容。然后尝试在上面使用
$search
。我不确定这是否有效。因为我想搜索所有邮件,如果搜索文本与主题、正文和附件匹配,它应该在结果中返回该邮件。上面的代码不可用。内容不可访问。@VinayGupta如果是,您应该使用
POSThttps://graph.microsoft.com/beta/search/query