בדף הזה מוסבר איך לאחזר את הפרטים של הודעה אחת בהסגר באמצעות ה-method get של המשאב customers.quarantinedMessages ב-Mail Admin Quarantine API. אתם יכולים להשתמש בו כדי לבדוק את הכותרות, הנושא, גוף ההודעה והקבצים המצורפים של ההודעה לפני שאתם מחליטים אם לשחרר או לדחות אותה.
דרישות מוקדמות
- השלמתם את השלבים שמפורטים בקטע הגדרת ה-API.
- אסימון גישה שמתחזה לאדמין עם הרשאת הסגר של אדמין, וכולל את ההיקף
https://www.googleapis.com/auth/gmail.admin.quarantineאוhttps://www.googleapis.com/auth/gmail.admin.quarantine.readonly. מידע נוסף זמין במאמר אישור באמצעות הענקת גישה ברמת הדומיין. - שם המשאב של הודעה בהסגר, שאפשר לקבל מהצגה וחיפוש של הודעות בהסגר.
קבלת הודעה בהסגר
כדי לקבל הודעה בהסגר, שולחים בקשת GET ל-method get בשם המשאב של ההודעה, ובוחרים כמה תוכן להחזיר באמצעות פרמטר השאילתה view:
GET https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID?view=MESSAGE_VIEW_DETAILS
Authorization: Bearer ACCESS_TOKEN
מחליפים את מה שכתוב בשדות הבאים:
- CUSTOMER_ID: מספר הלקוח שלכם.
- MESSAGE_OWNER: כתובת האימייל של בעלי תיבת הדואר, כמו שמופיעה בשדה
messageOwner. - MESSAGE_ID: המזהה של ההודעה ב-Gmail, כמו שהוא מופיע בשדה
messageId.
כדי למצוא את הערכים האלה, צריך להפעיל את ה-method list או search של המשאב customers.quarantinedMessages. אפשר להעביר את השדה name מתגובה של list או search ישירות כנתיב הבקשה, לדוגמה https://mailadminquarantine.googleapis.com/v1/customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0.
כמה אנשים ראו את ההודעה?
הפרמטר של השאילתה view קובע אילו שדות ייכללו בתגובה:
| הצגה | השדות שמוחזרים |
|---|---|
MESSAGE_VIEW_BASIC (ברירת מחדל) |
מטא-נתונים של הסגר בלבד: name, messageId, messageOwner, quarantines, receiveTime, direction, state, retentionExpireTime ו-triggeredRules. |
MESSAGE_VIEW_DETAILS |
name, messageId, messageOwner, והאובייקט המנותח content עם subject, body, headers, attachments, labels ו-classificationLabelValues. |
MESSAGE_VIEW_RAW |
name, messageId, messageOwner ו-rawMessage, ההודעה כולה בפורמט RFC 2822 כמחרוזת בקידוד base64url. |
אם משמיטים את view, ה-API מחזיר את התצוגה הבסיסית. אם ערך התצוגה לא מזוהה, תוחזר שגיאת 400 INVALID_ARGUMENT.
דוגמה לתשובה
התשובה הבאה משתמשת ב-view=MESSAGE_VIEW_DETAILS:
{
"name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
"messageId": "18d3ef45a8b2c1d0",
"messageOwner": "user@example.com",
"content": {
"subject": "Urgent: Verify your account details",
"body": "Please click the link below to verify your login credentials...",
"headers": [
{"name": "From", "value": "security-alert@external.example.net"},
{"name": "To", "value": "user@example.com"},
{"name": "Date", "value": "Tue, 22 Sep 2026 10:15:00 +0000"},
{"name": "Subject", "value": "Urgent: Verify your account details"}
],
"attachments": [
{
"filename": "invoice_update.pdf",
"mimeType": "application/pdf",
"sizeBytes": "142857",
"attachmentId": "att_987654321"
}
],
"labels": ["^admin_quarantine"]
}
}
בטבלה הבאה מוצגים שדות התוכן של התשובה:
| שדה | תיאור |
|---|---|
content.subject |
נושא ההודעה. |
content.body |
גוף ההודעה או התקציר שלה בטקסט פשוט. |
content.headers[] |
כותרות ההודעה, עם ערכים מפוענחים ב-MIME. |
content.attachments[] |
שם הקובץ, סוג ה-MIME, הגודל בבייטים והמזהה של כל קובץ מצורף. |
content.labels[] |
תוויות רגילות ב-Gmail שנוספו להודעה. |
content.classificationLabelValues[] |
תוויות סיווג שהוחלו על ההודעה, אם יש כאלה. |
פענוח של הודעה גולמית
ב-view=MESSAGE_VIEW_RAW, השדה rawMessage מכיל את ההודעה המלאה בפורמט RFC 2822, מקודדת כמחרוזת base64url. מפענחים אותו כדי לנתח את ההודעה באמצעות כלי אימייל רגילים, לדוגמה:
import base64
import email
raw_message = response.json()['rawMessage']
mime_message = email.message_from_bytes(base64.urlsafe_b64decode(raw_message))
print(mime_message['Subject'])