Obtén detalles del mensaje

En esta página, se explica cómo recuperar los detalles de un solo mensaje en cuarentena con el método get del recurso customers.quarantinedMessages en la API de Mail Admin Quarantine. Úsala para inspeccionar los encabezados, el asunto, el cuerpo y los archivos adjuntos de un mensaje antes de decidir si lo liberas o lo rechazas.

Requisitos previos

Cómo obtener un mensaje en cuarentena

Para obtener un mensaje en cuarentena, envía una solicitud GET al método get en el nombre del recurso del mensaje y elige la cantidad de contenido que se devolverá con el parámetro de consulta view:

GET https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID?view=MESSAGE_VIEW_DETAILS
Authorization: Bearer ACCESS_TOKEN

Reemplaza lo siguiente:

  • CUSTOMER_ID: Es tu ID de cliente.
  • MESSAGE_OWNER: Es la dirección de correo electrónico del propietario del buzón de correo, como se muestra en el campo messageOwner.
  • MESSAGE_ID: Es el ID del mensaje de Gmail, como se muestra en el campo messageId.

Para encontrar estos valores, llama al método list o search del recurso customers.quarantinedMessages. Puedes pasar el campo name de una respuesta list o search directamente como la ruta de solicitud, por ejemplo, https://mailadminquarantine.googleapis.com/v1/customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0.

Vistas de mensaje

El parámetro de consulta view determina qué campos incluye la respuesta:

Ver Campos mostrados
MESSAGE_VIEW_BASIC (predeterminada) Solo metadatos de cuarentena: name, messageId, messageOwner, quarantines, receiveTime, direction, state, retentionExpireTime y triggeredRules.
MESSAGE_VIEW_DETAILS name, messageId, messageOwner y el objeto content analizado con subject, body, headers, attachments, labels y classificationLabelValues.
MESSAGE_VIEW_RAW name, messageId, messageOwner y rawMessage, el mensaje completo en formato RFC 2822 como una cadena codificada en base64url.

Si omites view, la API devuelve la vista básica. Un valor de vista no reconocido devuelve un error 400 INVALID_ARGUMENT.

Ejemplo de respuesta

En la siguiente respuesta, se usa view=MESSAGE_VIEW_DETAILS:

{
  "name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
  "messageId": "18d3ef45a8b2c1d0",
  "messageOwner": "user@example.com",
  "content": {
    "subject": "Urgent: Verify your account details",
    "body": "Please click the link below to verify your login credentials...",
    "headers": [
      {"name": "From", "value": "security-alert@external.example.net"},
      {"name": "To", "value": "user@example.com"},
      {"name": "Date", "value": "Tue, 22 Sep 2026 10:15:00 +0000"},
      {"name": "Subject", "value": "Urgent: Verify your account details"}
    ],
    "attachments": [
      {
        "filename": "invoice_update.pdf",
        "mimeType": "application/pdf",
        "sizeBytes": "142857",
        "attachmentId": "att_987654321"
      }
    ],
    "labels": ["^admin_quarantine"]
  }
}

En la siguiente tabla, se muestran los campos de contenido de una respuesta:

Campo Descripción
content.subject Es el asunto del mensaje.
content.body Es el cuerpo o el fragmento de texto sin formato del mensaje.
content.headers[] Son los encabezados del mensaje, con valores decodificados con MIME.
content.attachments[] El nombre de archivo, el tipo de MIME, el tamaño en bytes y el ID de cada archivo adjunto.
content.labels[] Son las etiquetas estándar de Gmail que se aplican al mensaje.
content.classificationLabelValues[] Las etiquetas de clasificación aplicadas al mensaje, si las hay.

Decodifica un mensaje sin procesar

Con view=MESSAGE_VIEW_RAW, el campo rawMessage contiene el mensaje completo en formato RFC 2822, codificado como una cadena base64url. Decodifícalo para analizar el mensaje con herramientas de correo electrónico estándar, por ejemplo:

import base64
import email

raw_message = response.json()['rawMessage']
mime_message = email.message_from_bytes(base64.urlsafe_b64decode(raw_message))
print(mime_message['Subject'])

Próximos pasos