אחרי שבודקים הודעה בהסגר, משתמשים ב-Mail Admin Quarantine API כדי לתעד את ההחלטה שהתקבלה:
- לשחרר את ההודעה כדי לשלוח אותה לנמענים. אם ההודעה נכנסת, Gmail מעביר אותה לתיבת הדואר של הנמען. הודעה יוצאת נשלחת על ידי Gmail.
- לדחות את ההודעה. Gmail מסיר את ההודעה מההסגר ולא מעביר אותה.
בדף הזה מוסבר איך לשחרר או לדחות הודעה אחת. כדי לבצע פעולה על הרבה הודעות בבת אחת, אפשר לעיין בקטע שחרור או דחייה של הודעות באצוות.
דרישות מוקדמות
- השלמתם את השלבים שמפורטים בקטע הגדרת ה-API.
- אסימון גישה שמתחזה לאדמין עם הרשאת הסגר של אדמין וכולל את ההיקף
https://www.googleapis.com/auth/gmail.admin.quarantine. היקף ההרשאות לקריאה בלבד לא מספיק. מידע נוסף זמין במאמר אישור באמצעות הענקת גישה ברמת הדומיין. - שם המשאב של הודעה בהסגר במצב
PENDING_TRIAGE, שאפשר לקבל מהצגה וחיפוש של הודעות בהסגר.
שחרור הודעה
כדי לשחרר הודעה, שולחים בקשת POST ל-method המותאם אישית :release של המשאב customers.quarantinedMessages בשם המשאב של ההודעה, עם גוף JSON ריק:
POST https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID:release
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{}
התשובה מכילה את ההודעה המעודכנת בשדה message, כשהערך של state מוגדר כ-RELEASED:
{
"message": {
"name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
"messageId": "18d3ef45a8b2c1d0",
"messageOwner": "user@example.com",
"state": "RELEASED"
}
}
דחיית הודעה
כדי לדחות הודעה, שולחים בקשת POST ל-method בהתאמה אישית :deny של המשאב customers.quarantinedMessages בשם המשאב של ההודעה, עם גוף JSON ריק:
POST https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID:deny
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{}
התשובה מכילה את ההודעה המעודכנת בשדה message, כשהערך של state מוגדר כ-DENIED:
{
"message": {
"name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
"messageId": "18d3ef45a8b2c1d0",
"messageOwner": "user@example.com",
"state": "DENIED"
}
}
דוגמה: מיון הודעות בהמתנה
בדוגמה הבאה ב-Python, מתבצע חיפוש של הודעות שממתינות למיון, בדיקה של נושא ההודעה ושחרור או דחייה של ההודעה על סמך כלל לדוגמה. מחליפים את הכלל בלוגיקת המיון שלכם.
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']}")
תגובות שגיאה
| סטטוס HTTP | סיבה |
|---|---|
400 INVALID_ARGUMENT |
שם המשאב לא תקין. |
403 PERMISSION_DENIED |
לאדמין שהתחזה אין גישה להסגר שבו נמצאת ההודעה, או שלטוקן אין את ההיקף https://www.googleapis.com/auth/gmail.admin.quarantine. |
404 NOT_FOUND |
אין הודעה בהסגר עם שם המשאב הזה. יכול להיות שתוקף ההודעה פג בהסגר. |
429 RESOURCE_EXHAUSTED |
הפרויקט בענן ב-Google Cloud חרג ממכסת בקשות הכתיבה. מידע על מכסות השימוש ב-Mail Admin Quarantine API |