Obtener mensajes de Outlook en una carpeta compartida o delegada

Outlook permite a los clientes compartir carpetas entre ellos y proporcionar acceso de "lectura", "creación", "edición" o "eliminación" a las carpetas individuales. Outlook también permite a un cliente delegar en otro usuario en nombre del cliente y tener acceso a carpetas de correo específico o a todo buzón del cliente; esto también se denomina "delegación" en Outlook.

Mediante programación, Microsoft Graph hace posible tanto la recepción de mensajes en carpetas de correo compartidas por otros usuarios como la obtención de las propias carpetas compartidas. La compatibilidad también se aplica a las carpetas que se han delegado.

Por ejemplo, supongamos que Jorge ha compartido y dado acceso a Juan para que lea su Bandeja de entrada. Si Juan ha iniciado sesión en la aplicación y ha proporcionado permisos delegados (Mail.Read.Shared o Mail.ReadWrite.Shared), la aplicación podrá acceder al correo de Jorge y a su Bandeja de entrada tal como se describe a continuación.

Permisos de Microsoft Graph

Use los permisos delegados, Mail.Read.Shared o Mail.ReadWrite.Shared, para leer o escribir respectivamente mensajes en una carpeta compartida o delegada.

Tenga en cuenta que esos dos permisos no admiten suscribirse para cambiar las notificaciones en los elementos de las carpetas compartidas o delegadas. Para configurar las suscripciones de notificación de cambios a los mensajes en una carpeta compartida o delegada, o cualquier otra carpeta de correo de un usuario en el espacio empresarial, use los permisos de aplicación, Mail.Read.

Para obtener más información, vea Permisos para el ámbito educativo.

Obtener un mensaje en la carpeta compartida

Puede obtener un mensaje específico en la Bandeja de entrada de Jorge:

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

Cuando se complete correctamente, verá HTTP 200 OK y la instancia de mensaje identificada por {id} de la Bandeja de entrada de Jorge.

Obtener todos los mensajes en la carpeta compartida

Obtenga todos los mensajes en la Bandeja de entrada de Jorge:

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

Cuando se complete correctamente, verá HTTP 200 OK y una colección de instancias de mensajes en la Bandeja de entrada de Jorge.

Obtener la carpeta compartida

Obtenga la carpeta (Bandeja de entrada) que compartió Jorge con Juan.

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

Cuando se complete correctamente, verá HTTP 200 OK y la instancia mailFolder que representa la Bandeja de entrada de Jorge.

Se aplican las mismas capacidades de GET si Jorge había delegado a Juan acceso a la Bandeja de entrada de Jorge o había delegado Juan todo su buzón.

Si Jorge no ha compartido su Bandeja de entrada con John ni ha delegado su buzón a Juan, especificar el identificador de usuario de Jorge o el nombre principal de usuario en esas operaciones GET devolverá un error.

Pasos siguientes

Obtenga más información sobre: