Obter mensagens do Outlook em uma pasta compartilhada ou delegada

O Outlook permite que os clientes compartilhem pastas de e-mail entre si e forneçam acesso de "leitura", "criação", "modificação" ou "exclusão" a pastas individuais. O Outlook também permite que um cliente delegue outro usuário para agir em nome do cliente e acesse pastas de correio específicas ou toda a caixa de correio do cliente; isso também é conhecido como "delegação" no Outlook.

Programaticamente, o Microsoft Graph dá suporte a receber mensagens em pastas de email que foram compartilhadas por outros usuários e obter as próprias pastas compartilhadas. O suporte também se aplica a pastas delegadas.

Como exemplo, Garth compartilhou e deu acesso de leitura à sua caixa de entrada para John. Se John entrar em seu aplicativo e fornecer permissões delegadas (Mail.Read.Shared ou Mail.ReadWrite.Shared), seu aplicativo acessará o email de Garth e a Caixa de Entrada do Garth, conforme descrito neste artigo.

Permissões do Microsoft Graph

Use as permissões delegadas, Mail.Read.Shared ou Mail.ReadWrite.Shared, para ler ou gravar mensagens em uma pasta compartilhada ou delegada.

Essas duas permissões não dão suporte à assinatura para alterar notificações em itens em pastas compartilhadas ou delegadas. Para configurar assinaturas de notificação de alteração de mensagens em uma pasta de correio compartilhada, delegada, ou de qualquer outra pasta de correio de usuário no locatário, use a permissão do aplicativo,

Saiba mais em permissões de correio.

Obtenha uma mensagem na pasta compartilhada

Você pode obter uma mensagem específica na caixa de entrada do Henrique:

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

Após a conclusão bem-sucedida, você obtém HTTP 200 OK e a instância de mensagem identificada pela {id} Caixa de Entrada do Garth.

Obter todas as mensagens na pasta compartilhada

Obtenha todas as mensagens na caixa de entrada do Henrique:

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

Após a conclusão bem-sucedida, você obtém HTTP 200 OK e uma coleção de instâncias de mensagem na Caixa de Entrada do Garth.

Obter a pasta compartilhada

Obtenha a pasta (caixa de entrada) que Henrique compartilhou com Diogo.

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

Após a conclusão bem-sucedida, você obtém HTTP 200 OK e uma instância mailFolder que representa a pasta Caixa de Entrada do Garth.

Os mesmos recursos de GET se aplicam se Henrique delegar a Diogo mais acesso à sua caixa de entrada ou se Henrique delegar toda a sua caixa de correio a Diogo.

Se Garth não compartilhou sua caixa de entrada com John, nem delegou sua caixa de correio para John, especificando a ID do usuário ou o nome da entidade de usuário de Garth nessas operações GET retornará um erro.

Próximas etapas