Después de revisar un mensaje en cuarentena, usa la API de Mail Admin Quarantine para registrar tu decisión de clasificación:
- Liberar el mensaje para entregarlo a sus destinatarios En el caso de un mensaje entrante, Gmail lo entrega al buzón del destinatario. En el caso de un mensaje saliente, Gmail lo envía.
- Rechaza el mensaje para rechazar la solicitud. Gmail descarta el mensaje y no lo entrega.
En esta página, se describe cómo liberar o rechazar un solo mensaje. Para realizar acciones en muchos mensajes a la vez, consulta Cómo liberar o rechazar mensajes en lotes.
Requisitos previos
- Completaste los pasos que se indican en Configura la API.
- Un token de acceso que suplanta a un administrador con un privilegio de cuarentena de administrador y que incluye el permiso
https://www.googleapis.com/auth/gmail.admin.quarantine. El permiso de solo lectura no es suficiente. Consulta Autoriza con la delegación de todo el dominio. - Es el nombre del recurso de un mensaje en cuarentena en el estado
PENDING_TRIAGE, que obtienes de Enumera y busca mensajes en cuarentena.
Cómo divulgar un mensaje
Para liberar un mensaje, envía una solicitud POST al método personalizado
:release
del recurso
customers.quarantinedMessages
en el nombre del recurso del mensaje con un cuerpo JSON vacío:
POST https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID:release
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{}
La respuesta contiene el mensaje actualizado en el campo message, con el
state
establecido en RELEASED:
{
"message": {
"name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
"messageId": "18d3ef45a8b2c1d0",
"messageOwner": "user@example.com",
"state": "RELEASED"
}
}
Cómo rechazar un mensaje
Para rechazar un mensaje, envía una solicitud POST al método personalizado :deny del recurso customers.quarantinedMessages en el nombre del recurso del mensaje con un cuerpo JSON vacío:
POST https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID:deny
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{}
La respuesta contiene el mensaje actualizado en el campo message, con el
state establecido en DENIED:
{
"message": {
"name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
"messageId": "18d3ef45a8b2c1d0",
"messageOwner": "user@example.com",
"state": "DENIED"
}
}
Ejemplo: Clasifica los mensajes pendientes
En el siguiente ejemplo de Python, se buscan mensajes pendientes de clasificación, se inspecciona el asunto de cada mensaje y se libera o rechaza el mensaje según una regla de ejemplo. Reemplaza la regla por tu propia lógica de clasificación.
import requests
BASE_URL = 'https://mailadminquarantine.googleapis.com/v1'
CUSTOMER_ID = '01abc23de' # Your customer ID without the leading 'C'.
headers = {
'Authorization': f'Bearer {access_token}',
'Content-Type': 'application/json',
}
# 1. Search for messages pending triage.
search_url = f'{BASE_URL}/customers/{CUSTOMER_ID}/quarantinedMessages:search'
search_body = {'filter': 'status = PENDING_TRIAGE', 'pageSize': 10}
response = requests.post(search_url, headers=headers, json=search_body)
response.raise_for_status()
for message in response.json().get('quarantinedMessages', []):
name = message['name']
# 2. Get the parsed message content.
details = requests.get(
f'{BASE_URL}/{name}?view=MESSAGE_VIEW_DETAILS', headers=headers)
details.raise_for_status()
subject = details.json().get('content', {}).get('subject', '')
# 3. Release or deny the message.
action = 'deny' if 'malicious' in subject.lower() else 'release'
result = requests.post(f'{BASE_URL}/{name}:{action}', headers=headers,
json={})
result.raise_for_status()
print(f"{name}: {result.json()['message']['state']}")
Respuestas de error
| Estado de HTTP | Causa |
|---|---|
400 INVALID_ARGUMENT |
El nombre del recurso tiene un formato incorrecto. |
403 PERMISSION_DENIED |
El administrador que se suplanta no tiene acceso a la cuarentena que contiene el mensaje, o bien el token no tiene el permiso https://www.googleapis.com/auth/gmail.admin.quarantine. |
404 NOT_FOUND |
No existe ningún mensaje en cuarentena con ese nombre de recurso. Es posible que el mensaje haya vencido en la cuarentena. |
429 RESOURCE_EXHAUSTED |
Tu proyecto de Google Cloud superó la cuota de solicitudes de escritura. Consulta las cuotas de uso de la API de Mail Admin Quarantine. |