پساز بررسی پیام قرنطینهشده، از Mail Admin Quarantine API برای ثبت تصمیم اولویتبندیتان استفاده کنید:
- پیام را آزاد کنید تا به گیرندگانش تحویل داده شود. برای پیام ورودی، Gmail آن را به صندوق پستی گیرنده تحویل میدهد. برای پیامهای برونمرزی، Gmail آن را ارسال میکند.
- برای رد کردن پیام، روی رد کردن کلیک کنید. Gmail پیام را رها میکند و آن را تحویل نمیدهد.
این صفحه نحوه انتشار یا رد کردن یک پیام را شرح میدهد. برای اقدام روی تعداد زیادی پیام بهطور همزمان، انتشار یا رد کردن پیامها بهصورت دستهای را ببینید.
پیشنیازها
- مراحل را در راهاندازی API تکمیل کرده باشید.
- یک کد دسترسی که خود را بهجای سرپرستی با امتیاز قرنطینه سرپرست جا میزند و شامل دامنه
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 را ببینید. |