获取消息详情

本页面介绍了如何使用 Mail Admin Quarantine API 中 customers.quarantinedMessages 资源的 get 方法检索单个隔离邮件的详细信息。您可以使用此功能检查邮件的标头、主题、正文和附件,然后再决定是放行还是拒绝该邮件。

前提条件

  • 您已完成设置 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:Gmail 邮件 ID,在 messageId 字段中返回。

如需查找这些值,请调用 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'])

后续步骤