Merilis atau menolak pesan

Setelah meninjau pesan yang dikarantina, gunakan Mail Admin Quarantine API untuk mencatat keputusan triase Anda:

  • Lepaskan pesan untuk mengirimkannya kepada penerima. Untuk pesan masuk, Gmail akan mengirimkannya ke kotak surat penerima. Untuk pesan keluar, Gmail akan mengirimkannya.
  • Tolak pesan untuk menolaknya. Gmail akan menghapus pesan dan tidak mengirimkannya.

Halaman ini menjelaskan cara merilis atau menolak satu pesan. Untuk mengambil tindakan pada banyak pesan sekaligus, lihat Merilis atau menolak pesan dalam batch.

Prasyarat

Merilis pesan

Untuk merilis pesan, kirim permintaan POST ke metode kustom :release dari resource customers.quarantinedMessages pada nama resource pesan dengan isi JSON kosong:

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

{}

Respons berisi pesan yang diperbarui di kolom message, dengan state ditetapkan ke RELEASED:

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

Menolak pesan

Untuk menolak pesan, kirim permintaan POST ke metode kustom :deny dari resource customers.quarantinedMessages pada nama resource pesan dengan isi JSON kosong:

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

{}

Respons berisi pesan yang diperbarui di kolom message, dengan state ditetapkan ke DENIED:

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

Contoh: Melakukan triase pesan yang tertunda

Contoh Python berikut menelusuri pesan yang menunggu triase, memeriksa subjek setiap pesan, dan merilis atau menolak pesan berdasarkan contoh aturan. Ganti aturan dengan logika triase Anda sendiri.

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

Respons error

Status HTTP Penyebab
400 INVALID_ARGUMENT Nama resource salah format.
403 PERMISSION_DENIED Administrator yang ditiru tidak memiliki akses ke karantina yang menyimpan pesan, atau token tidak memiliki cakupan https://www.googleapis.com/auth/gmail.admin.quarantine.
404 NOT_FOUND Tidak ada pesan yang dikarantina dengan nama resource tersebut. Pesan mungkin telah habis masa berlakunya dari karantina.
429 RESOURCE_EXHAUSTED Project Google Cloud Anda melebihi kuota permintaan tulis. Lihat Kuota penggunaan Mail Admin Quarantine API.

Langkah berikutnya