Enumerar mensajes

Espacio de nombres: microsoft.graph

Obtenga los mensajes del buzón del usuario que ha iniciado sesión (incluidas las carpetas Elementos eliminados y Otros correos).

Dependiendo de los datos del buzón y del tamaño de la página, recibir mensajes desde un buzón puede conllevar varias solicitudes. El tamaño de página predeterminado es de 10 mensajes. Use $top para personalizar el tamaño de página, dentro del intervalo de 1 y 1000.

Para mejorar el tiempo de respuesta de la operación, use $select para especificar las propiedades exactas que necesita; consulte el siguienteejemplo 1. Ajuste los valores de $select y $top, especialmente cuando debe usar un tamaño de página más grande, ya que devolver una página con cientos de mensajes cada uno con una carga de respuesta completa puede desencadenar el tiempo de espera de la puerta de enlace (HTTP 504).

Para obtener la página siguiente de mensajes, basta con aplicar la dirección URL completa devuelta en @odata.nextLink a la siguiente solicitud get-messages. Esta dirección URL contiene todos los parámetros de consulta que haya especificado en la solicitud inicial.

No intente extraer el valor $skip de la dirección URL @odata.nextLink para manipular las respuestas. Esta API usa el valor $skip para mantener el recuento de todos los elementos que ha recorrido en el buzón del usuario para devolver una página de elementos de tipo de mensaje. Por tanto, es posible que incluso en la respuesta inicial, el valor de $skip sea mayor que el tamaño de la página. Para obtener más información, vea Paginación de los datos de Microsoft Graph en su aplicación.

Actualmente, esta operación devuelve los cuerpos de los mensajes solo en formato HTML.

Hay dos posibles escenarios donde una aplicación puede obtener mensajes en la carpeta de correo de otro usuario:

  • Si la aplicación tiene permisos de aplicación, o bien,
  • Si la aplicación tiene los correspondientes permisos delegados de un usuario y otro usuario ha compartido una carpeta de correo con ese usuario, o bien, le ha concedido acceso delegado a ese usuario. Vea detalles y un ejemplo.

Nota Tenga en cuenta el problema conocido que esta operación incluye los mensajes del chat de Microsoft Teams en su respuesta.

Permisos

Se requiere uno de los siguientes permisos para llamar a esta API. Para obtener más información, incluido cómo elegir permisos, vea Permisos.

Tipo de permiso Permisos (de menos a más privilegiados)
Delegado (cuenta profesional o educativa) Mail.ReadBasic, Mail.Read, Mail.ReadWrite
Delegado (cuenta personal de Microsoft) Mail.ReadBasic, Mail.Read, Mail.ReadWrite
Aplicación Mail.ReadBasic.All, Mail.Read, Mail.ReadWrite

Solicitud HTTP

Para obtener todos los mensajes del buzón de un usuario:

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

Para obtener los mensajes de una carpeta específica del buzón del usuario:

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

Parámetros de consulta opcionales

Este método admite los parámetros de consulta de OData a modo de ayuda para personalizar la respuesta.

Usar Filter y OrderBy en la misma consulta

Cuando este usando $filter y $orderby en la misma consulta para obtener mensajes, asegúrese de especificar las propiedades de las siguientes maneras:

  1. Las propiedades que aparecen $orderby en también deben aparecer $filteren.
  2. Las propiedades que aparecen $orderby en están en el mismo orden que $filteren.
  3. Las propiedades presentes en $orderby aparecen en antes de $filter las propiedades que no lo sean.

Si no lo hace, se produce el siguiente error:

  • Código de errorInefficientFilter
  • Mensaje de error: The restriction or sort order is too complex for this operation.

Encabezados de solicitud

Nombre Tipo Descripción
Authorization string {token} de portador. Obligatorio.
Prefer: outlook.body-content-type string Formato de las propiedades body y uniqueBody que se devolverá. Los valores pueden ser "text" o "html". Si no se especifica el encabezado, las propiedades body y uniqueBody se devuelven en formato HTML. Opcional.

Cuerpo de la solicitud

No proporcione un cuerpo de solicitud para este método.

Respuesta

Si se ejecuta correctamente, este método devuelve un código de respuesta 200 OK y la colección de objetos Message en el cuerpo de la respuesta.

Ejemplos

Ejemplo 1: mostrar todos los mensajes

Solicitud

Este ejemplo obtiene los 10 mensajes principales predeterminados del buzón del usuario que ha iniciado sesión. Usa $select para devolver un subconjunto de las propiedades de cada mensaje en la respuesta.

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

Respuesta

Este es un ejemplo de la respuesta. Para obtener la página siguiente de mensajes, aplique la dirección URL devuelta @odata.nextLink en una solicitud GET siguiente.

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"
                }
            }
        }
    ]
}