Depois de analisar uma mensagem em quarentena, use a API Mail Admin Quarantine para registrar sua decisão de triagem:
- Liberar a mensagem para que ela seja entregue aos destinatários. No caso de uma mensagem recebida, o Gmail a entrega na caixa de correio do destinatário. No caso de uma mensagem de saída, o Gmail a envia.
- Negar a mensagem para rejeitá-la. O Gmail descarta a mensagem e não a entrega.
Nesta página, descrevemos como liberar ou recusar uma única mensagem. Para agir em várias mensagens de uma só vez, consulte Liberar ou recusar mensagens em lotes.
Pré-requisitos
- Você concluiu as etapas em Configurar a API.
- Um token de acesso que personifica um administrador com um privilégio de quarentena de administrador e inclui o escopo
https://www.googleapis.com/auth/gmail.admin.quarantine. O escopo somente leitura não é suficiente. Consulte Autorizar com delegação em todo o domínio. - O nome do recurso de uma mensagem em quarentena no estado
PENDING_TRIAGE, que você recebe de Listar e pesquisar mensagens em quarentena.
Liberar uma mensagem
Para liberar uma mensagem, envie uma solicitação POST ao método personalizado :release do recurso customers.quarantinedMessages no nome do recurso da mensagem com um corpo JSON vazio:
POST https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID:release
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{}
A resposta contém a mensagem atualizada no campo message, com o
state
definido como RELEASED:
{
"message": {
"name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
"messageId": "18d3ef45a8b2c1d0",
"messageOwner": "user@example.com",
"state": "RELEASED"
}
}
Negar uma mensagem
Para negar uma mensagem, envie uma solicitação POST ao método personalizado :deny do recurso customers.quarantinedMessages no nome do recurso da mensagem com um corpo JSON vazio:
POST https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID:deny
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{}
A resposta contém a mensagem atualizada no campo message, com o
state definido como DENIED:
{
"message": {
"name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
"messageId": "18d3ef45a8b2c1d0",
"messageOwner": "user@example.com",
"state": "DENIED"
}
}
Exemplo: triagem de mensagens pendentes
O exemplo de Python a seguir pesquisa mensagens com triagem pendente, inspeciona o assunto de cada mensagem e libera ou nega a mensagem com base em uma regra de exemplo. Substitua a regra pela sua própria lógica de triagem.
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']}")
Respostas de erro
| Status HTTP | Causa |
|---|---|
400 INVALID_ARGUMENT |
O nome do recurso está incorreto. |
403 PERMISSION_DENIED |
O administrador personificado não tem acesso à quarentena que contém a mensagem, ou o token não tem o escopo https://www.googleapis.com/auth/gmail.admin.quarantine. |
404 NOT_FOUND |
Não há mensagens em quarentena com esse nome de recurso. A mensagem pode ter expirado na quarentena. |
429 RESOURCE_EXHAUSTED |
Seu projeto na nuvem do Google Cloud excedeu a cota de solicitações de gravação. Consulte as cotas de uso da API Mail Admin Quarantine. |