使用 Amazon 的 CloudWatch 洞察 WorkMail - Amazon WorkMail

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

使用 Amazon 的 CloudWatch 洞察 WorkMail

如果您在 Amazon WorkMail 主控台中開啟電子郵件事件記錄功能,或啟用了將稽核 CloudWatch 日誌交付到日誌,則可以使用 Amazon CloudWatch 日誌洞察來查詢事件日誌。如需啟用電子郵件事件記錄的詳細資訊,請參閱 啟用電子郵件事件記。如需有關 CloudWatch 日誌洞見的詳細資訊,請參閱 Amazon CloudWatch 日誌使用者指南中的使用日誌洞察分析 CloudWatch 日誌資料

下列範例示範如何查詢常見電子郵件事件的 CloudWatch 記錄檔。您可以在 CloudWatch 主控台中執行這些查詢。如需有關如何執行這些查詢的指示,請參閱 Amazon CloudWatch Logs 使用者指南的教學課程:執行和修改查詢範例

範例 瞭解使用者 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"

這會傳回傳遞動作和任何適用的規則動作。

 

範例 查看從使用者或網域收到的所有郵件

以下程式碼範例示範如何查詢從指定使用者收到的所有郵件。

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")
範例 查看誰發送了退回的電子郵件

以下程式碼範例示範如何查詢退回的外寄電子郵件,同時傳回退回的原因。

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"
範例 查看哪些網域傳送垃圾郵件

以下程式碼範例示範如何查詢組織中接收垃圾郵件的收件人。

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")
範例 瞭解電子郵件傳送至收件者的垃圾郵件資料夾的原因

以下程式碼範例示範如何查詢被識別為垃圾郵件的電子郵件,依主旨篩選。

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 查詢,以查看電子郵件的所有事件。

 

範例 查看符合電子郵件流程規則的電郵

以下程式碼範例示範如何查詢符合傳出電子郵件流程規則的電子郵件。

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"
範例 查看您的組織接收或傳送了多少封電子郵件

以下程式碼範例示範如何查詢組織中每個收件人接收的電子郵件數量。

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