Поиск сообщений 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": "[email protected]"
}
},
"from": {
"emailAddress": {
"name": "Office365 Message Center",
"address": "[email protected]"
}
}
}
}
]
}
]
}
]
}
Пример 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": "[email protected]"
}
},
"from": {
"emailAddress": {
"name": "Office365 Message Center",
"address": "[email protected]"
}
}
}
}
]
}
]
}
]
}
Известные ограничения
- Вы можете получить доступ только к собственному почтовому ящику пользователя, выполнившего вход. Поиск делегированных почтовых ящиков не поддерживается.
- Для сообщений свойство total типа searchHitsContainer содержит количество результатов на странице, а не общее число соответствующих результатов.
- Результаты сортировки не поддерживаются для событий. Предложение сортировки в запросе вернет код ошибки "Неправильный запрос" в ответе.