Поиск сообщений Outlook с помощью API microsoft Поиск

Используйте API Microsoft Поиск в Microsoft Graph для поиска сведений в сообщениях электронной почты, возврата сообщений, ранжированных по релевантности и отображения выделенного интерфейса поиска. Поиск применяется к тексту и вложениям сообщений в собственном почтовом ящике пользователя, выполнившего вход.

Предостережение

Схема API поиска изменилась в бета-версии. Некоторые свойства в поисковом запросе и ответе были переименованы или удалены. Дополнительные сведения см. в разделе Предупреждение об изменении схемы об устаревании. В примерах в этом разделе показана актуальная схема.

Поисковый запрос может включать фильтры, которые пользователи вводит в текстовое поле Поиск в Outlook.

Результаты поиска сообщений сортируются по receivedDateTime в порядке убывания.

Поиск сообщений применяется к рабочим или учебным учетным записям. Пользователи могут искать собственные почтовые ящики, но не могут искать делегированные почтовые ящики. Дополнительные сведения см. в разделе Известные ограничения.

Поиск сообщений также ищет вложения. Поддерживаемые типы файлов для поиска вложений сообщений совпадают с типами файлов для поиска SharePoint Online.

Пример 1. Поиск сообщений в почтовом ящике пользователя

В следующем примере запрашиваются сообщения в почтовом ящике пользователя, вошедшего в систему, которые содержат строку contoso в любой части сообщения (имя отправителя, тема, текст сообщения или любые вложения). Запрос возвращает первые 25 результатов. Результаты поиска упорядочены по убыванию DateTime .

Запрос

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

{
  "requests": [
    {
      "entityTypes": [
        "message"
      ],
      "query": {
        "queryString": "contoso"
      },
      "from": 0,
      "size": 25
    }
  ]
}

Отклик

Ниже приведен пример ответа, который содержит одно сообщение, соответствующее условию поиска.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#search",
  "value": [
    {
      "searchTerms": [
        "contoso"
      ],
      "hitsContainers": [
        {
          "total": 1,
          "moreResultsAvailable": false,
          "hits": [
            {
              "hitId": "ptWLQ4o6HYpQg8xmAAATzOzRAAA=",
              "rank": 1,
              "summary": "Here is a summary of your messages from last week",
              "resource": {
                "@odata.type": "#microsoft.graph.message",
                "createdDateTime": "2019-10-07T10:00:08Z",
                "lastModifiedDateTime": "2019-10-07T10:00:11Z",
                "receivedDateTime": "2019-10-07T10:00:09Z",
                "sentDateTime": "2019-10-07T09:59:52Z",
                "hasAttachments": false,
                "subject": "Weekly digest: Microsoft 365 changes",
                "bodyPreview": "Here is a summary of your messages from last week -   New Feature: Live captions in English-US a",
                "importance": "normal",
                "replyTo": [
                  {
                    "emailAddress": {
                      "name": "Goncalo Torres"
                    }
                  }
                ],
                "sender": {
                  "emailAddress": {
                    "name": "Office365 Message Center",
                    "address": "gtorres@contoso.com"
                  }
                },
                "from": {
                  "emailAddress": {
                    "name": "Office365 Message Center",
                    "address": "gtorres@contoso.com"
                  }
                }
              }
            }
          ]
        }
      ]
    }
  ]
}

Пример 2. Поиск сообщения о лучших результатах

В следующем примере используется поисковый запрос, показанный в примере 1, и результаты сортируются по релевантности.

Запрос

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

{
  "requests": [
    {
      "entityTypes": [
        "message"
      ],
      "query": {
        "queryString": "contoso"
      },
      "from": 0,
      "size": 15,
      "enableTopResults": true
    }
  ]
}

Отклик

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#search",
  "value": [
    {
      "searchTerms": [
        "contoso"
      ],
      "hitsContainers": [
        {
          "total": 1,
          "moreResultsAvailable": false,
          "hits": [
            {
              "hitId": "ptWLQ4o6HYpQg8xmAAATzOzRAAA=",
              "rank": 1,
              "summary": "Here is a summary of your messages from last week",
              "resource": {
                "@odata.type": "#microsoft.graph.message",
                "createdDateTime": "2019-10-07T10:00:08Z",
                "lastModifiedDateTime": "2019-10-07T10:00:11Z",
                "receivedDateTime": "2019-10-07T10:00:09Z",
                "sentDateTime": "2019-10-07T09:59:52Z",
                "hasAttachments": false,
                "subject": "Weekly digest: Microsoft 365 changes",
                "bodyPreview": "Here is a summary of your messages from last week -   New Feature: Live captions in English-US a",
                "importance": "normal",
                "replyTo": [
                  {
                    "emailAddress": {
                      "name": "Goncalo Torres"
                    }
                  }
                ],
                "sender": {
                  "emailAddress": {
                    "name": "Office365 Message Center",
                    "address": "gtorres@contoso.com"
                  }
                },
                "from": {
                  "emailAddress": {
                    "name": "Office365 Message Center",
                    "address": "gtorres@contoso.com"
                  }
                }
              }
            }
          ]
        }
      ]
    }
  ]
}

Известные ограничения

  • Вы можете получить доступ только к собственному почтовому ящику пользователя, выполнившего вход. Поиск делегированных почтовых ящиков не поддерживается.
  • Для сообщений свойство total типа searchHitsContainer содержит количество результатов на странице, а не общее число соответствующих результатов.
  • Результаты сортировки не поддерживаются для событий. Предложение сортировки в запросе вернет код ошибки "Неправильный запрос" в ответе.

Дальнейшие действия