الموافقة على رسالة أو رفضها

بعد مراجعة رسالة معزولة، استخدِم Mail Admin Quarantine API لتسجيل قرارك بشأنها:

  • إطلاق الرسالة لتسليمها إلى المستلِمين بالنسبة إلى الرسائل الواردة، يسلّمها Gmail إلى صندوق بريد المستلِم. بالنسبة إلى الرسائل الصادرة، يرسلها Gmail.
  • رفض الرسالة لرفضها يتجاهل Gmail الرسالة ولا يسلّمها.

توضّح هذه الصفحة كيفية إصدار رسالة واحدة أو رفضها. لاتخاذ إجراء بشأن العديد من الرسائل في آنٍ واحد، يُرجى الاطّلاع على الموافقة على الرسائل أو رفضها على دفعات.

المتطلبات الأساسية

إصدار رسالة

لإصدار رسالة، أرسِل طلب POST إلى الطريقة المخصّصة :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 إلى الطريقة المخصّصة :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.

الخطوات التالية