কোয়ারেন্টাইন করা মেসেজের তালিকা তৈরি ও সার্চ করা

এই পৃষ্ঠায় ব্যাখ্যা করা হয়েছে যে কীভাবে Mail Admin Quarantine API ব্যবহার করে আপনার Google Workspace অ্যাডমিন কোয়ারেন্টাইনে হোল্ডে রাখা মেসেজ খুঁজে পাবেন।

API, customers.quarantinedMessages রিসোর্সে দুটি পদ্ধতি অফার করে:

  • list পদ্ধতিটি কোনও ফিল্টারিং ছাড়াই কোয়ারেন্টাইন করা মেসেজ ফিরিয়ে দেয়। কোয়ারেন্টাইনে থাকা সব আইটেম পৃষ্ঠা ধরে ধরে দেখতে এটি ব্যবহার করুন।
  • search পদ্ধতিটি একটি স্ট্রাকচার্ড ফিল্টার, একটি Gmail সার্চ কোয়েরি বা উভয়ই ব্যবহার করে ফলাফলকে আরও নির্দিষ্ট করে। এটি ট্রায়াজ ওয়ার্কফ্লোর জন্য ব্যবহার করুন, যেমন, শুধুমাত্র পর্যালোচনার জন্য বাকি থাকা ইনবাউন্ড মেসেজ ফিরিয়ে আনা।

দুটি পদ্ধতিই গত ৩০ দিনের মেসেজ ফিরিয়ে আনে এবং দুটিই প্রতিটি মেসেজের জন্য একই বেসিক মেটাডেটা ফিরিয়ে আনে। হেডার, বডি, অ্যাটাচমেন্ট বা র মেসেজ ফিরিয়ে আনতে, মেসেজের বিবরণ পান দেখুন।

পূর্বশর্ত

কোয়ারেন্টাইন করা মেসেজের তালিকা

কোয়ারেন্টাইন করা মেসেজের তালিকা তৈরি করতে, আপনার গ্রাহকের customers.quarantinedMessages রিসোর্সের list মেথডে GET অনুরোধ পাঠান:

GET https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages?pageSize=50
Authorization: Bearer ACCESS_TOKEN

CUSTOMER_ID-এর জায়গায় আপনার কাস্টমার আইডি লিখুন।

list পদ্ধতি নিম্নলিখিত কোয়েরি প্যারামিটার গ্রহণ করে:

প্যারামিটার বিবরণ
pageSize প্রতি পৃষ্ঠায় ১ থেকে ৩০০টি পর্যন্ত মেসেজ দেখানো যাবে। এই প্যারামিটার সবসময় স্পষ্টভাবে সেট করুন।
pageToken আগের উত্তর থেকে nextPageToken ভ্যালু। পরবর্তী পৃষ্ঠা ফিরিয়ে আনতে এটি ব্যবহার করুন।

কোয়ারেন্টাইন করা মেসেজ সার্চ করতে, JSON বডি সহ customers.quarantinedMessages রিসোর্সে কাস্টম পদ্ধতিতে :search POST অনুরোধ পাঠান:

POST https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages:search
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json

{
  "filter": "status = PENDING_TRIAGE AND direction = INBOUND",
  "query": "from:suspicious@example.com",
  "pageSize": 50
}

অনুরোধের প্রধান অংশে নিম্নলিখিত ফিল্ডগুলি থাকে। সব ফিল্ডই ঐচ্ছিক:

ফিল্ড বিবরণ
filter AIP-160 সিনট্যাক্সে একটি স্ট্রাকচার্ড ফিল্টার। ফিল্টার সিনট্যাক্স দেখুন।
query Gmail সার্চ কোয়েরি, যেমন has:attachment বা from:suspicious@example.com। কোয়েরিতে Gmail সার্চ বক্সের মতো একই অপারেটর ব্যবহার করা হয়। Gmail-এ আপনি যেসব সার্চ অপারেটর ব্যবহার করতে পারেন তা দেখুন।
pageSize প্রতি পৃষ্ঠায় ১ থেকে ৩০০টি পর্যন্ত মেসেজ দেখানো যাবে। এই ফিল্ডটি সবসময় স্পষ্টভাবে সেট করুন।
pageToken আগের উত্তর থেকে nextPageToken ভ্যালু।

আপনি filter এবং query দুটিই সেট করলে, API শুধুমাত্র সেইসব মেসেজ দেখায় যেগুলি দুটির সাথেই মেলে।

সিনট্যাক্স ফিল্টার করুন

filter ফিল্ডে নিম্নলিখিত ফিল্ড কাজ করে। AND অপারেটর ব্যবহার করে সেগুলি একত্রিত করুন। অন্যান্য অপারেটর, যেমন OR এবং NOT, কাজ করে না।

ফিল্ড যেসব তুলনা করা যায় ভ্যালু
status = PENDING_TRIAGE, RELEASED অথবা DENIED।
direction =, != INBOUND বা OUTBOUND।
quarantine_name (বা quarantineName) = Google অ্যাডমিন কনসোলে দেখানো কোয়ারেন্টাইনের ডিসপ্লে নাম, যেমন "Default"।

নিচে সঠিক ফিল্টারের উদাহরণ দেওয়া হল:

status = PENDING_TRIAGE
status = PENDING_TRIAGE AND direction = INBOUND
direction != OUTBOUND AND quarantine_name = "Default"

ভুল ফিল্টার থাকলে 400 INVALID_ARGUMENT সমস্যা দেখা যায়।

রেসপন্স

দুটি পদ্ধতিই প্রাথমিক মেটাডেটা সহ QuarantinedMessage রিসোর্সের একটি তালিকা প্রদান করে, সাথে আরও ফলাফল উপলভ্য থাকলে nextPageToken প্রদান করে:

{
  "quarantinedMessages": [
    {
      "name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
      "messageId": "18d3ef45a8b2c1d0",
      "messageOwner": "user@example.com",
      "quarantines": [
        "customers/01abc23de/quarantines/0"
      ],
      "receiveTime": "2026-09-22T10:15:30Z",
      "direction": "INBOUND",
      "state": "PENDING_TRIAGE",
      "retentionExpireTime": "2026-10-22T10:15:30Z",
      "triggeredRules": [
        {
          "policyId": "123",
          "ruleId": "456",
          "displayName": "Inbound phishing protection"
        }
      ]
    }
  ],
  "nextPageToken": "CAESBAgBEA..."
}
ফিল্ড বিবরণ
name মেসেজের রিসোর্স নাম। customers.quarantinedMessages রিসোর্সে পরবর্তী get, release এবং deny কলে এটি ব্যবহার করুন।
messageId অপরিবর্তনীয় Gmail মেসেজ আইডি।
messageOwner মেসেজের মালিকানা আছে এমন মেলবক্সের ইমেল আইডি।
quarantines মেসেজটি যে কোয়ারেন্টাইনে আছে তার রিসোর্সের নাম। কোয়ারেন্টাইনের ডিসপ্লে নাম পেতে customers.quarantines রিসোর্সের get পদ্ধতি কল করুন।
receiveTime Gmail কখন মেসেজটি পেয়েছে।
direction INBOUND যদি কোনও ব্যবহারকারী মেসেজটি পেয়ে থাকেন, অথবা OUTBOUND যদি কোনও ব্যবহারকারী এটি পাঠিয়ে থাকেন।
state PENDING_TRIAGE, RELEASED অথবা DENIED।
retentionExpireTime কোয়ারেন্টাইন যখন মেসেজ ধরে রাখা বন্ধ করে দেয়।
triggeredRules যেসব নিয়মের কারণে মেসেজ কোয়ারেন্টাইন করা হয়েছে।
unreachable যেসব অ্যাকাউন্টের জন্য পরিষেবা কোয়ারেন্টাইন করা মেসেজ ফিরিয়ে আনতে পারেনি। যদি থাকে, তাহলে পরে আবার অনুরোধ করুন।

ফলাফলের মাধ্যমে পৃষ্ঠা

মিলে যাওয়া সব মেসেজ ফিরিয়ে আনতে:

  1. pageSize-এর মাধ্যমে প্রথম অনুরোধ পাঠান।
  2. উত্তরে nextPageToken থাকলে, একই প্যারামিটার সহ অনুরোধের পুনরাবৃত্তি করুন এবং pageToken-কে সেই ভ্যালুতে সেট করুন।
  3. উত্তরে nextPageToken না থাকলে থামান।

নিম্নলিখিত 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',
}

search_url = f'{BASE_URL}/customers/{CUSTOMER_ID}/quarantinedMessages:search'
body = {
    'filter': 'status = PENDING_TRIAGE AND direction = INBOUND',
    'pageSize': 100,
}
messages = []
while True:
  response = requests.post(search_url, headers=headers, json=body)
  response.raise_for_status()
  result = response.json()
  messages.extend(result.get('quarantinedMessages', []))
  page_token = result.get('nextPageToken')
  if not page_token:
    break
  body['pageToken'] = page_token

print(f'Found {len(messages)} messages pending triage.')

পরবর্তী ধাপ