このページでは、Mail Admin Quarantine API の customers.quarantinedMessages リソースの get メソッドを使用して、検疫された 1 つのメールの詳細を取得する方法について説明します。この機能を使用すると、メッセージのヘッダー、件名、本文、添付ファイルを確認してから、メッセージを配信するか拒否するかを決定できます。
前提条件
- API を設定するの手順を完了している。
- 管理者検疫権限を持つ管理者の権限を借用し、
https://www.googleapis.com/auth/gmail.admin.quarantineスコープまたはhttps://www.googleapis.com/auth/gmail.admin.quarantine.readonlyスコープを含むアクセス トークン。ドメイン全体の委任で承認するをご覧ください。 - 検疫されたメールのリソース名。検疫されたメールを一覧表示して検索するで取得します。
検疫済みメッセージを取得する
検疫されたメッセージを取得するには、メッセージのリソース名で get メソッドに GET リクエストを送信し、view クエリ パラメータで返すコンテンツの量を選択します。
GET https://mailadminquarantine.googleapis.com/v1/customers/CUSTOMER_ID/quarantinedMessages/MESSAGE_OWNER:MESSAGE_ID?view=MESSAGE_VIEW_DETAILS
Authorization: Bearer ACCESS_TOKEN
次のように置き換えます。
- CUSTOMER_ID: 実際のお客様 ID。
- MESSAGE_OWNER:
messageOwnerフィールドで返されるメールボックス所有者のメールアドレス。 - MESSAGE_ID:
messageIdフィールドで返される Gmail メッセージ ID。
これらの値を確認するには、customers.quarantinedMessages リソースの list メソッドまたは search メソッドを呼び出します。list または search レスポンスの name フィールドをリクエストパスとして直接渡すことができます(例: https://mailadminquarantine.googleapis.com/v1/customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0)。
メッセージの閲覧回数
view クエリ パラメータは、レスポンスに含めるフィールドを決定します。
| 表示 | 返されるフィールド |
|---|---|
MESSAGE_VIEW_BASIC(デフォルト) |
検疫メタデータのみ: name、messageId、messageOwner、quarantines、receiveTime、direction、state、retentionExpireTime、triggeredRules。 |
MESSAGE_VIEW_DETAILS |
name、messageId、messageOwner、および subject、body、headers、attachments、labels、classificationLabelValues を含む解析済みの content オブジェクト。 |
MESSAGE_VIEW_RAW |
name、messageId、messageOwner、rawMessage。RFC 2822 形式のメッセージ全体を base64url でエンコードした文字列。 |
view を省略すると、API は基本ビューを返します。認識できないビュー値を指定すると、400 INVALID_ARGUMENT エラーが返されます。
レスポンスの例
次のレスポンスでは view=MESSAGE_VIEW_DETAILS を使用しています。
{
"name": "customers/01abc23de/quarantinedMessages/user@example.com:18d3ef45a8b2c1d0",
"messageId": "18d3ef45a8b2c1d0",
"messageOwner": "user@example.com",
"content": {
"subject": "Urgent: Verify your account details",
"body": "Please click the link below to verify your login credentials...",
"headers": [
{"name": "From", "value": "security-alert@external.example.net"},
{"name": "To", "value": "user@example.com"},
{"name": "Date", "value": "Tue, 22 Sep 2026 10:15:00 +0000"},
{"name": "Subject", "value": "Urgent: Verify your account details"}
],
"attachments": [
{
"filename": "invoice_update.pdf",
"mimeType": "application/pdf",
"sizeBytes": "142857",
"attachmentId": "att_987654321"
}
],
"labels": ["^admin_quarantine"]
}
}
次の表に、レスポンスのコンテンツ フィールドを示します。
| フィールド | 説明 |
|---|---|
content.subject |
メッセージの件名。 |
content.body |
メッセージの書式なしテキストの本文またはスニペット。 |
content.headers[] |
メッセージ ヘッダー(MIME デコードされた値を含む)。 |
content.attachments[] |
各添付ファイルのファイル名、MIME タイプ、サイズ(バイト単位)、ID。 |
content.labels[] |
メールに適用されている標準の Gmail ラベル。 |
content.classificationLabelValues[] |
メールに適用されている分類ラベル(存在する場合)。 |
未加工のメッセージをデコードする
view=MESSAGE_VIEW_RAW を使用すると、rawMessage フィールドには、RFC 2822 形式の完全なメッセージが base64url 文字列としてエンコードされます。標準のメールツールでメッセージを分析するためにデコードします。次に例を示します。
import base64
import email
raw_message = response.json()['rawMessage']
mime_message = email.message_from_bytes(base64.urlsafe_b64decode(raw_message))
print(mime_message['Subject'])