【问题标题】:Microsoft Graph API Attachment Search using C#使用 C# 的 Microsoft Graph API 附件搜索
【发布时间】:2020-03-18 06:11:08
【问题描述】:

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

graphClient.Me.MailFolders.Inbox.Messages.Request().Expand("attachments") .Filter($"contains(subject, '{subject}')").OrderBy("Subject").Top(30).GetAsync();

我知道我在过滤器中传递了主题,但我不确定如何搜索附件中的内容。

请给我一些建议。

【问题讨论】:

    标签: c# outlook microsoft-graph-api microsoft-graph-sdks microsoft-graph-mail


    【解决方案1】:

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

    这里的 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<QueryOption> options = new List<QueryOption> { new QueryOption("$search", "Work") }; var messages = await graphClient.Me.Messages.Request(options).Expand("attachments").GetAsync();
    • @VinayGupta 我不认为你可以使用graphClient.Me.MailFolders.Inbox.Messages.Request().Expand("attachments") 来获取附件内容。您需要使用graphServiceClient.Me.Messages["messageid"].Attachments["attachmentid"].Content.Request().GetAsync() 来获取附件的内容。然后尝试使用$search就可以了。
    • 我不确定这是否可行。因为我想搜索所有邮件,如果搜索文本与主题、正文和附件匹配,它应该在结果中返回该邮件。上面的代码不起作用,因为 .Content 不可访问。
    • @VinayGupta 如果是这样,您应该使用POST https://graph.microsoft.com/beta/search/query
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 2022-01-06
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 2019-02-27
    相关资源
    最近更新 更多