

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 搭配 Amazon WorkMail 使用 CloudWatch Insights
<a name="cw-insights"></a>

如果您在 Amazon WorkMail 主控台中開啟電子郵件事件記錄，或啟用稽核日誌交付至 CloudWatch Logs，您可以使用 Amazon CloudWatch Logs Insights 查詢您的事件日誌。如需啟用電子郵件事件記錄的詳細資訊，請參閱 [啟用電子郵件事件記錄](tracking.md)。如需 CloudWatch Logs Insights 的詳細資訊，請參閱《Amazon [ CloudWatch Logs 使用者指南》中的使用 CloudWatch Logs Insights 分析日誌資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)。 *Amazon CloudWatch *

下列範例示範如何查詢 CloudWatch Logs 是否有常見的電子郵件事件。您可以在 CloudWatch 主控台中執行這些查詢。如需如何執行這些查詢的指示，請參閱《*Amazon CloudWatch Logs 使用者指南*》中的[教學課程：執行和修改範例查詢](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
```