

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Amazon 上使用 CloudWatch 见解 WorkMail
<a name="cw-insights"></a>

如果您在 Amazon WorkMail 控制台中开启了电子邮件事件记录功能或启用了向日志传输审核日 CloudWatch 志，则可以使用 Amazon CloudWatch Logs Insights 来查询您的事件日志。有关启用电子邮件事件日志记录的更多信息，请参阅[启用电子邮件事件日志记录](tracking.md)。有关 [Lo CloudWatch gs Insights 的更多信息，请参阅 *Amazon Logs 用户指南中的使用 CloudWatch CloudWatch 日志*见解分析日志数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)。

以下示例演示如何查询常见电子邮件事件的 CloudWatch 日志。你可以在 CloudWatch 控制台中运行这些查询。有关如何运行这些查询的说明，请参阅 *Amazon L CloudWatch ogs 用户指南*中的[教程：运行和修改示例查询](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData_RunSampleQuery.html)。

**Example 查看为何用户 B 没有收到用户 A 发送的电子邮件。**  
以下代码示例演示了如何查询用户 A 向用户 B 发送的传出电子邮件（按时间戳排序）。  

```
fields @timestamp, traceId

| sort @timestamp asc
| filter (event.from like /(?i)userA@example.com/
and event.eventName = "OUTGOING_EMAIL_SUBMITTED"
and event.recipients.0 like /(?i)userB@example.com/)
```
这将返回已发送的邮件和跟踪 ID。使用以下代码示例中的跟踪 ID 查询已发送邮件的事件日志。  

```
fields @timestamp, event.eventName
| sort @timestamp asc
| filter traceId = "$TRACEID"
```
这将返回电子邮件 ID 和电子邮件事件。`OUTGOING_EMAIL_SENT` 表示电子邮件已发送。`OUTGOING_EMAIL_BOUNCED` 表示电子邮件被退回。要了解是否收到了电子邮件，请使用以下代码示例中的邮件 ID 进行查询。  

```
fields @timestamp, event.eventName
| sort @timestamp asc
| filter event.messageId like "$MESSAGEID"
```
这还应该返回收到的邮件，因为它具有相同的邮件 ID。使用以下代码示例中的跟踪 ID 可查询送达情况。  

```
fields @timestamp, event.eventName
| sort @timestamp asc
| filter traceId = "$TRACEID"
```
这将返回传送操作以及任何合适的规则操作。  
 

**Example 查看从某个用户或域收到的所有邮件**  
以下代码示例演示了如何查询从指定用户接收的所有邮件。  

```
fields @timestamp, event.eventName
| sort @timestamp asc
| filter (event.from like /(?i)user@example.com/ and event.eventName = "ORGANIZATION_EMAIL_RECEIVED")
```
以下代码示例演示了如何查询从指定域接收的所有邮件。  

```
fields @timestamp, event.eventName
| sort @timestamp asc
| filter (event.from like "example.com" and event.eventName = "ORGANIZATION_EMAIL_RECEIVED")
```

**Example 查看被退回电子邮件的发件人**  
以下代码示例演示了如何查询被退回的传出电子邮件，并返回了退回的原因。  

```
fields @timestamp, event.destination, event.reason
| sort @timestamp desc
| filter event.eventName = "OUTGOING_EMAIL_BOUNCED"
```
以下代码示例演示了如何查询退回的传入电子邮件。它还会返回退回邮件的收件人的电子邮件地址和退回的原因。  

```
fields @timestamp, event.bouncedRecipient.emailAddress, event.bouncedRecipient.reason, event.bouncedRecipient.status
| sort @timestamp desc
| filter event.eventName = "INCOMING_EMAIL_BOUNCED"
```

**Example 查看正在发送垃圾邮件的域**  
以下代码示例演示了如何查询您组织中正在接收垃圾邮件的收件人。  

```
stats count(*) as c by event.recipients.0
| filter (event.eventName = "ORGANIZATION_EMAIL_RECEIVED" and event.spamVerdict = "FAIL")
| sort c desc
```
以下代码示例演示了如何查询垃圾电子邮件的发件人。  

```
fields @timestamp, event.recipients.0, event.sender, event.from
| sort @timestamp asc
| filter (event.spamVerdict = "FAIL")
```

**Example 查看为何电子邮件会发送到收件人的垃圾邮件文件夹**  
以下代码示例演示了如何查询被认定为垃圾邮件的电子邮件（按主题进行筛选）。  

```
fields @timestamp, event.recipients.0, event.spamVerdict, event.spfVerdict, event.dkimVerdict, event.dmarcVerdict
| sort @timestamp asc
| filter event.subject like /(?i)$SUBJECT/ and event.eventName = "ORGANIZATION_EMAIL_RECEIVED"
```
您还可以通过电子邮件跟踪 ID 进行查询以查看该电子邮件的所有事件。  
 

**Example 查看与电子邮件流规则匹配的电子邮件**  
以下代码示例演示了如何查询与出站电子邮件流规则匹配的电子邮件。  

```
fields @timestamp, event.ruleName, event.ruleActions.0.action
| sort @timestamp desc
| filter event.ruleType = "OUTBOUND_RULE"
```
以下代码示例演示了如何查询与入站电子邮件流规则匹配的电子邮件。  

```
fields @timestamp, event.ruleName, event.ruleActions.0.action, event.ruleActions.0.recipients.0
| sort @timestamp desc
| filter event.ruleType = "INBOUND_RULE"
```

**Example 查看您的组织接收或发送的电子邮件数量**  
以下代码示例演示了如何查询您组织中的每个收件人接收的电子邮件数。  

```
stats count(*) as c by event.recipient
| filter event.eventName = "MAILBOX_EMAIL_DELIVERED"
| sort c desc
```
以下代码示例演示了如何查询您组织中的每个发件人发送的电子邮件数。  

```
stats count(*) as c by event.from
| filter event.eventName = "OUTGOING_EMAIL_SUBMITTED"
| sort c desc
```