本页面介绍了如何使用 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'])