Список сообщений

Пространство имен: microsoft.graph

Получение сообщений в почтовом ящике пользователя, выполнившего вход (в том числе сообщений в папках "Удаленные" и "Несрочные").

В зависимости от размера страницы и данных почтового ящика получение сообщений из почтового ящика может повлечь множество запросов. По умолчанию страница содержит 10 сообщений. Используйте параметр $top, чтобы настроить размер страницы в диапазоне от 1 до 1000.

Чтобы сократить время отклика, используйте параметр $select для указания точных свойств, которые вам нужны. См. пример 1 ниже. Настройте значения для $select и $top, особенно при необходимости использовании большего размера страницы, так как возврат страницы с сотнями сообщений, каждое из которых содержит полные полезные данные отклика, может привести к истечению времени ожидания шлюза (HTTP 504).

Для получения следующей странице с сообщениями, просто примените весь URL-адрес, возвращаемый в @odata.nextLink, для другого запроса на получение сообщений. Этот URL-адрес включает любые параметры запроса, которые указаны в первоначальном запросе.

Не пытайтесь извлечь $skip значение из @odata.nextLink URL-адреса для управления ответами. Данный API использует значение $skip для учета всех элементов, просмотренных в почтовом ящике пользователя, и возврата элементов типа сообщение на странице. Таким образом, существует возможность, что даже в первоначальном ответе, значение $skip будет больше, чем размер страницы. Дополнительные сведения см. в статье Разбивка данных Microsoft Graph по страницам в приложении

В настоящее время эта операция возвращает текст сообщения только в формате HTML.

Существует два сценария, когда приложение может получить сообщения из папки почты другого пользователя:

  • У приложения есть разрешения для приложений; или
  • У приложения есть соответствующие делегированные разрешения от одного пользователя, а другой пользователь поделился с ним папкой почты или предоставил ему делегированный доступ. См. подробные сведения и пример.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet
✅ ✅ ✅ ✅

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) Mail.ReadBasic Mail.ReadWrite, Mail.Read
Делегированные (личная учетная запись Майкрософт) Mail.ReadBasic Mail.ReadWrite, Mail.Read
Приложение Mail.ReadBasic.All Mail.ReadWrite, Mail.Read

HTTP-запрос

Для получения всех сообщений в почтовом ящике пользователя:

GET /me/messages
GET /users/{id | userPrincipalName}/messages

Для получения сообщений из определенной папки в почтовом ящике пользователя:

GET /me/mailFolders/{id}/messages
GET /users/{id | userPrincipalName}/mailFolders/{id}/messages

Необязательные параметры запросов

Этот метод поддерживает параметры запросов OData для настройки ответа.

Использование операторов filter и orderby в одном запросе

При использовании операторов $filter и $orderby в одном запросе на получение сообщений необходимо указать свойства, соблюдая указанные ниже условия.

  1. Свойства, используемые в операторе $orderby, также должны использоваться в операторе $filter.
  2. Свойства, используемые в операторе $orderby, представлены в том же порядке, что и для оператора $filter.
  3. Свойства, присутствующие в операторе $orderby, представлены в операторе $filter раньше всех остальных свойств.

В противном случае возникнет следующая ошибка:

  • Код ошибки: InefficientFilter
  • Сообщение об ошибке: The restriction or sort order is too complex for this operation.

Заголовки запросов

Имя Тип Описание
Authorization string Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.
Prefer: outlook.body-content-type string Формат возвращаемых свойств body и uniqueBody. Возможные значения: "text" или "html". Если заголовок не указан, свойства body и uniqueBody возвращаются в формате HTML. Необязательный параметр.

Текст запроса

Не указывайте текст запроса для этого метода.

Отклик

В случае успеха этот метод возвращает код отклика 200 OK и коллекцию объектов Message в тексте отклика.

Примеры

Пример 1. Перечисление всех сообщений

Запрос

Вот пример, который получает первые 10 сообщений по умолчанию в почтовом ящике вошедшего в систему пользователя. $select используется для получения подмножества свойств каждого сообщения в ответе.

GET https://graph.microsoft.com/v1.0/me/messages?$select=sender,subject

Отклик

Ниже показан пример отклика. Чтобы получить следующую страницу с сообщениями, примените URL-адрес, возвращенный в @odata.nextLink, для последующего запроса GET.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('bb8775a4-4d8c-42cf-a1d4-4d58c2bb668f')/messages(sender,subject)",
    "value": [
        {
            "@odata.etag": "W/\"CQAAABYAAADHcgC8Hl9tRZ/hc1wEUs1TAAAwR4Hg\"",
            "id": "AAMkAGUAAAwTW09AAA=",
            "subject": "You have late tasks!",
            "sender": {
                "emailAddress": {
                    "name": "Microsoft Planner",
                    "address": "noreply@Planner.Office365.com"
                }
            }
        }
    ]
}