Phát hành hoặc từ chối thư

Sau khi bạn xem xét một thư bị cách ly, hãy sử dụng Mail Admin Quarantine API để ghi lại quyết định phân loại của bạn:

  • Cho phép gửi thư để gửi thư đến người nhận. Đối với thư đến, Gmail sẽ gửi thư đến hộp thư của người nhận. Đối với thư gửi đi, Gmail sẽ gửi thư đó.
  • Từ chối thông báo để từ chối thông báo đó. Gmail sẽ loại bỏ thư và không gửi thư.

Trang này mô tả cách phát hành hoặc từ chối một thư. Để xử lý nhiều thư cùng một lúc, hãy xem bài viết Phát hành hoặc từ chối thư theo lô.

Điều kiện tiên quyết

Phát hành thư

Để phát hành một thông báo, hãy gửi yêu cầu POST đến phương thức tuỳ chỉnh :release của tài nguyên customers.quarantinedMessages trên tên tài nguyên của thông báo có nội dung JSON trống:

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

{}

Nội dung phản hồi chứa thông báo đã cập nhật trong trường message, trong đó state được đặt thành RELEASED:

{
  "message": {
    "name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
    "messageId": "18d3ef45a8b2c1d0",
    "messageOwner": "user@example.com",
    "state": "RELEASED"
  }
}

Từ chối bài viết

Để từ chối một thông báo, hãy gửi yêu cầu POST đến phương thức tuỳ chỉnh :deny của tài nguyên customers.quarantinedMessages trên tên tài nguyên của thông báo bằng một nội dung JSON trống:

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

{}

Nội dung phản hồi chứa thông báo đã cập nhật trong trường message, trong đó state được đặt thành DENIED:

{
  "message": {
    "name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
    "messageId": "18d3ef45a8b2c1d0",
    "messageOwner": "user@example.com",
    "state": "DENIED"
  }
}

Ví dụ: Sắp xếp các bài viết đang chờ xử lý

Ví dụ về Python sau đây tìm kiếm các thư đang chờ phân loại, kiểm tra tiêu đề của từng thư và phát hành hoặc từ chối thư dựa trên một quy tắc mẫu. Thay thế quy tắc bằng logic phân loại của riêng bạn.

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']}")

Phản hồi lỗi

Trạng thái HTTP Nguyên nhân
400 INVALID_ARGUMENT Tên tài nguyên không đúng định dạng.
403 PERMISSION_DENIED Quản trị viên được mạo danh không có quyền truy cập vào khu vực cách ly chứa thư hoặc mã thông báo thiếu phạm vi https://www.googleapis.com/auth/gmail.admin.quarantine.
404 NOT_FOUND Không có thư bị cách ly nào có tên tài nguyên đó. Thư có thể đã hết hạn trong khu vực cách ly.
429 RESOURCE_EXHAUSTED Dự án trên đám mây của bạn đã vượt quá hạn mức yêu cầu ghi. Xem Hạn mức sử dụng Mail Admin Quarantine API.

Các bước tiếp theo