Après avoir examiné un message mis en quarantaine, utilisez l'API Mail Admin Quarantine pour enregistrer votre décision de tri :
- Distribuez le message à ses destinataires. Pour un message entrant, Gmail le distribue dans la boîte aux lettres du destinataire. Pour un message sortant, Gmail l'envoie.
- Refuser le message pour le rejeter. Gmail supprime le message et ne le distribue pas.
Cette page explique comment libérer ou refuser un seul message. Pour agir sur plusieurs messages à la fois, consultez Distribuer ou refuser des messages par lots.
Prérequis
- Vous avez suivi les étapes de la section Configurer l'API.
- Un jeton d'accès qui emprunte l'identité d'un administrateur disposant d'un droit de mise en quarantaine d'administrateur et inclut le champ d'application
https://www.googleapis.com/auth/gmail.admin.quarantine. Le niveau d'accès en lecture seule n'est pas suffisant. Consultez Autoriser avec la délégation au niveau du domaine. - Nom de ressource d'un message mis en quarantaine à l'état
PENDING_TRIAGE, que vous obtenez à partir de Lister et rechercher les messages mis en quarantaine.
Libérer un message
Pour libérer un message, envoyez une requête POST à la méthode personnalisée :release de la ressource customers.quarantinedMessages sur le nom de ressource du message avec un corps JSON vide :
POST https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID:release
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{}
La réponse contient le message mis à jour dans le champ message, avec state défini sur RELEASED :
{
"message": {
"name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
"messageId": "18d3ef45a8b2c1d0",
"messageOwner": "user@example.com",
"state": "RELEASED"
}
}
Refuser un message
Pour refuser un message, envoyez une requête POST à la méthode personnalisée :deny de la ressource customers.quarantinedMessages sur le nom de ressource du message avec un corps JSON vide :
POST https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID:deny
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{}
La réponse contient le message mis à jour dans le champ message, avec state défini sur DENIED :
{
"message": {
"name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
"messageId": "18d3ef45a8b2c1d0",
"messageOwner": "user@example.com",
"state": "DENIED"
}
}
Exemple : Trier les messages en attente
L'exemple Python suivant recherche les messages en attente de tri, inspecte l'objet de chaque message, puis l'approuve ou le refuse en fonction d'un exemple de règle. Remplacez la règle par votre propre logique de tri.
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']}")
Réponses d'erreur
| État HTTP | Cause |
|---|---|
400 INVALID_ARGUMENT |
Le nom de la ressource est incorrect. |
403 PERMISSION_DENIED |
L'administrateur dont l'identité est empruntée n'a pas accès à la zone de quarantaine contenant le message, ou le jeton ne dispose pas du champ d'application https://www.googleapis.com/auth/gmail.admin.quarantine. |
404 NOT_FOUND |
Aucun message mis en quarantaine n'existe avec ce nom de ressource. Le message a peut-être expiré de la quarantaine. |
429 RESOURCE_EXHAUSTED |
Votre projet Google Cloud a dépassé le quota de requêtes d'écriture. Consultez Quotas d'utilisation de l'API Mail Admin Quarantine. |