এই পৃষ্ঠায় ব্যাখ্যা করা হয়েছে যে কীভাবে Mail Admin Quarantine API-তে
customers.quarantinedMessages
রিসোর্সের
get
পদ্ধতির মাধ্যমে
কোয়ারেন্টাইন করা একটি মেসেজের বিবরণ ফিরিয়ে আনা যায়। কোনও মেসেজ রিলিজ বা বাতিল করার সিদ্ধান্ত নেওয়ার আগে, সেটির হেডার, বিষয়, বডি ও অ্যাটাচমেন্ট চেক করতে এটি ব্যবহার করুন।
পূর্বশর্ত
- আপনি 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ফিল্ডে ফেরত পাঠানো হয়েছে।
এইসব ভ্যালু খুঁজে পেতে, customers.quarantinedMessages রিসোর্সের
list
বা
search
মেথড কল করুন। আপনি list বা search থেকে পাওয়া উত্তর থেকে সরাসরি অনুরোধের পাথ হিসেবে name
ফিল্ড পাস করতে পারবেন, যেমন
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 এবং subject, body, headers, attachments, labels ও classificationLabelValues সহ পার্স করা content অবজেক্ট। |
MESSAGE_VIEW_RAW |
name, messageId, messageOwner এবং rawMessage, base64url-এনকোড করা স্ট্রিং হিসেবে RFC 2822 ফর্ম্যাটে সম্পূর্ণ মেসেজ। |
আপনি 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'])