Po sprawdzeniu wiadomości w kwarantannie użyj interfejsu Mail Admin Quarantine API, aby zapisać decyzję dotyczącą jej klasyfikacji:
- Zwolnij wiadomość, aby dostarczyć ją do odbiorców. W przypadku wiadomości przychodzącej Gmail dostarcza ją do skrzynki pocztowej adresata. W przypadku wiadomości wychodzącej Gmail ją wysyła.
- Odrzuć wiadomość, aby ją odrzucić. Gmail odrzuca wiadomość i jej nie dostarcza.
Na tej stronie dowiesz się, jak udostępnić lub odrzucić pojedynczą wiadomość. Aby wykonać działanie na wielu wiadomościach jednocześnie, zapoznaj się z artykułem Zatwierdzanie i odrzucanie wiadomości w partiach.
Wymagania wstępne
- Wykonano czynności opisane w artykule Konfigurowanie interfejsu API.
- Token dostępu, który podszywa się pod administratora z uprawnieniami do kwarantanny administracyjnej i obejmuje zakres
https://www.googleapis.com/auth/gmail.admin.quarantine. Zakres tylko do odczytu jest niewystarczający. Zobacz Autoryzacja przy użyciu przekazywania dostępu w całej domenie. - Nazwa zasobu wiadomości poddanej kwarantannie w stanie
PENDING_TRIAGE, którą uzyskasz, korzystając z metody Wyświetlanie i wyszukiwanie wiadomości poddanych kwarantannie.
Zwalnianie wiadomości
Aby zwolnić wiadomość, wyślij żądanie POST do metody niestandardowej :release zasobu customers.quarantinedMessages w nazwie zasobu wiadomości z pustą treścią JSON:
POST https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID:release
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{}
Odpowiedź zawiera zaktualizowaną wiadomość w polu message, a pole state ma wartość RELEASED:
{
"message": {
"name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
"messageId": "18d3ef45a8b2c1d0",
"messageOwner": "user@example.com",
"state": "RELEASED"
}
}
Odrzucanie wiadomości
Aby odrzucić wiadomość, wyślij żądanie POST do metody niestandardowej :deny zasobu customers.quarantinedMessages w nazwie zasobu wiadomości z pustą treścią JSON:
POST https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID:deny
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{}
Odpowiedź zawiera zaktualizowaną wiadomość w polu message, a pole state ma wartość DENIED:
{
"message": {
"name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
"messageId": "18d3ef45a8b2c1d0",
"messageOwner": "user@example.com",
"state": "DENIED"
}
}
Przykład: segregowanie oczekujących wiadomości
Poniższy przykład w języku Python wyszukuje wiadomości oczekujące na sprawdzenie, sprawdza temat każdej wiadomości i zatwierdza lub odrzuca wiadomość na podstawie przykładowej reguły. Zastąp regułę własną logiką klasyfikacji.
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']}")
Odpowiedzi na błędy
| Stan HTTP | Przyczyna |
|---|---|
400 INVALID_ARGUMENT |
Nazwa zasobu jest nieprawidłowa. |
403 PERMISSION_DENIED |
Administrator, pod którego się podszywasz, nie ma dostępu do kwarantanny, w której znajduje się wiadomość, lub token nie ma zakresu https://www.googleapis.com/auth/gmail.admin.quarantine. |
404 NOT_FOUND |
Nie ma wiadomości w kwarantannie o tej nazwie zasobu. Wiadomość mogła zostać usunięta z kwarantanny. |
429 RESOURCE_EXHAUSTED |
Twój projekt w chmurze Google Cloud przekroczył limit żądań zapisu. Zobacz Limity wykorzystania interfejsu Mail Admin Quarantine API. |