Получение сообщений Outlook в общей или делегированной папке

Пользователи Outlook могут делиться почтовыми папками и предоставлять права на чтение, создание, изменение и удаление отдельных папок. Outlook также позволяет клиенту делегировать другому пользователю право действовать от имени клиента и получать доступ к определенным папкам или ко всему его почтовому ящику. В Outlook это называется "делегированием".

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

Допустим, Григорий предоставил Ивану доступ на чтение своей папки "Входящие". Если Иван войдет в приложение и предоставит делегированные разрешения (Mail.Read.Shared или Mail.ReadWrite.Shared), то приложение сможет получать доступ к почте и папке "Входящие" Григория, как показано ниже.

Разрешения Microsoft Graph

Используйте делегированные разрешения, Mail.Read.Shared или Mail.ReadWrite.Shared, чтобы они могли считывать и записывать сообщения в общей или делегированной папке.

Обратите внимание на то, что эти два разрешения не поддерживают подписку на уведомления об изменениях для элементов в общих или делегированных папках. Чтобы настроить подписки на уведомления об изменениях сообщений в общей, делегированной или любой другой почтовой папке пользователя в клиенте, используйте разрешение приложения, Mail.Read.

Дополнительные сведения см. в разделе Разрешения для почты.

Получение сообщения из общей папки

Так вы можете получить определенное сообщение из папки "Входящие" Григория:

GET users/{Garth-userId | Garth-userPrincipalName}/mailfolders('Inbox')/messages/{id}

В случае успешного выполнения вы получите отклик HTTP 200 OK и экземпляр объекта message, указанный параметром {id}, из папки "Входящие" Григория.

Получение всех сообщений из общей папки

Получение всех сообщений из папки "Входящие" Григория:

GET users/{Garth-userId | Garth-userPrincipalName}/mailfolders('Inbox')/messages

В случае успешного выполнения вы получите отклик HTTP 200 OK и коллекцию экземпляров объекта message из папки "Входящие" Григория.

Получение общей папки

Получение папки ("Входящие"), доступ к которой Григорий предоставил Ивану.

GET users/{Garth-userId | Garth-userPrincipalName}/mailfolders('Inbox')

В случае успешного выполнения вы получите отклик HTTP 200 OK и экземпляр объекта mailFolder, представляющий папку "Входящие" Григория.

Такие же возможности для запросов GET будут доступны, если Григорий делегирует Ивану дополнительные права доступа к своей папке "Входящие" или всему почтовому ящику.

Если Григорий не поделился своей папкой "Входящие" с Иваном и не делегировал ему свой почтовый ящик, то при указании идентификатора пользователя или имени участника-пользователя Григория в этих операциях GET будет возвращена ошибка.

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