انتشار یا رد کردن پیام

پس‌از بررسی پیام قرنطینه‌شده، از 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 را ببینید.

مراحل بعدی