Получение сообщений 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 будет возвращена ошибка.
Дальнейшие действия
- Зачем выполнять интеграцию с почтой Outlook?
- Использование почтового API и вариантов его использования в Microsoft Graph версии 1.0