بعد مراجعة رسالة معزولة، استخدِم Mail Admin Quarantine API لتسجيل قرارك بشأنها:
- إطلاق الرسالة لتسليمها إلى المستلِمين بالنسبة إلى الرسائل الواردة، يسلّمها Gmail إلى صندوق بريد المستلِم. بالنسبة إلى الرسائل الصادرة، يرسلها Gmail.
- رفض الرسالة لرفضها يتجاهل Gmail الرسالة ولا يسلّمها.
توضّح هذه الصفحة كيفية إصدار رسالة واحدة أو رفضها. لاتخاذ إجراء بشأن العديد من الرسائل في آنٍ واحد، يُرجى الاطّلاع على الموافقة على الرسائل أو رفضها على دفعات.
المتطلبات الأساسية
- أكملت الخطوات الواردة في مقالة إعداد واجهة برمجة التطبيقات.
- رمز الدخول الذي ينتحل هوية مشرف لديه امتياز عزل المشرف ويتضمّن نطاق
https://www.googleapis.com/auth/gmail.admin.quarantine. ولا يكفي نطاق القراءة فقط. يُرجى الاطّلاع على التفويض باستخدام التفويض على مستوى النطاق. - اسم المورد لرسالة معزولة في الحالة
PENDING_TRIAGE، والذي تحصل عليه من عرض الرسائل المعزولة والبحث فيها.
إصدار رسالة
لإصدار رسالة، أرسِل طلب 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. |