این صفحه نحوه بازیابی جزئیات یک پیام قرنطینهشده را بااستفاده از روش 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 را به روش
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برگردانده شده است.
برای پیدا کردن این مقادیر، روش
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'])