หลังจากตรวจสอบข้อความที่กักบริเวณแล้ว ให้ใช้ 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 ของคุณมีคำขอเขียนเกินโควต้า โปรดดูหัวข้อโควต้าการใช้งาน Mail Admin Quarantine API |