

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

# Amazon SES 發佈至 Amazon SNS 的事件資料內容
<a name="event-publishing-retrieving-sns-contents"></a>

Amazon SES 以 JSON 格式將電子郵件傳送事件記錄發佈到 Amazon Simple Notification Service。

您可於 [Amazon SES 發佈至 Amazon SNS 的事件資料範例](event-publishing-retrieving-sns-examples.md) 找到這些所有通知類型的範例記錄。

**Topics**
+ [最上層 JSON 物件](#event-publishing-retrieving-sns-contents-top-level-json-object)
+ [郵件物件](#event-publishing-retrieving-sns-contents-mail-object)
+ [退信物件](#event-publishing-retrieving-sns-contents-bounce-object)
+ [投訴物件](#event-publishing-retrieving-sns-contents-complaint-object)
+ [交付物件](#event-publishing-retrieving-sns-contents-delivery-object)
+ [傳送物件](#event-publishing-retrieving-sns-contents-send-object)
+ [拒絕物件](#event-publishing-retrieving-sns-contents-reject-object)
+ [開啟物件](#event-publishing-retrieving-sns-contents-open-object)
+ [點選物件](#event-publishing-retrieving-sns-contents-click-object)
+ [算圖失敗物件](#event-publishing-retrieving-sns-contents-failure-object)
+ [DeliveryDelay 物件](#event-publishing-retrieving-sns-contents-delivery-delay-object)
+ [訂閱物件](#event-publishing-retrieving-sns-contents-subscription-object)

## 最上層 JSON 物件
<a name="event-publishing-retrieving-sns-contents-top-level-json-object"></a>

電子郵件傳送事件記錄中最上層的 JSON 物件包含下列欄位。事件類型會決定有哪些其他物件。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `eventType` | 描述事件類型的字串。可能的數值：`Bounce`、`Complaint`、`Delivery`、`Send`、`Reject`、`Open`、`Click`、`Rendering Failure`、`DeliveryDelay` 或 `Subscription`。<br />如果您未[設定事件發佈](monitor-sending-using-event-publishing-setup.md)，此欄位將命名為 `notificationType`。 | 
| `mail` | 包含生產該事件的電子郵件相關資訊之 JSON 物件。 | 
| `bounce` | 此欄位只有在 `eventType` 的值為 `Bounce` 才會顯示。其中包含退信的資訊。 | 
| `complaint` | 此欄位只有在 `eventType` 的值為 `Complaint` 才會顯示。其中包含投訴的資訊。 | 
| `delivery` | 此欄位只有在 `eventType` 的值為 `Delivery` 才會顯示。其中包含交付的資訊。 | 
| `send` | 此欄位只有在 `eventType` 的值為 `Send` 才會顯示。 | 
| `reject` | 此欄位只有在 `eventType` 的值為 `Reject` 才會顯示。其中包含拒收的資訊。 | 
| `open` | 此欄位只有在 `eventType` 的值為 `Open` 才會顯示。其中包含開啟事件的資訊。 | 
| `click` | 此欄位只有在 `eventType` 的值為 `Click` 才會顯示。其中包含點選事件的資訊。 | 
| `failure` | 此欄位只有在 `eventType` 的值為 `Rendering Failure` 才會顯示。其中包含轉譯失敗事件的資訊。 | 
| `deliveryDelay` | 此欄位只有在 `eventType` 的值為 `DeliveryDelay` 才會顯示。其中包含電子郵件延遲傳遞的相關資訊。 | 
| `subscription` | 此欄位只有在 `eventType` 的值為 `Subscription` 才會顯示。其中包含訂閱偏好設定的資訊。 | 

## 郵件物件
<a name="event-publishing-retrieving-sns-contents-mail-object"></a>

每個電子郵件傳送事件記錄包含 `mail` 物件中原始電子郵件的相關資訊。其中包含 `mail` 物件相關資訊的 JSON 物件有下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `timestamp` | 傳送訊息的日期和時間，格式為 ISO8601 (*YYYY-MM-DDThh:mm:ss.sZ*)。 | 
| `messageId` | Amazon SES 指派給訊息的專有 ID。您傳送訊息後，Amazon SES 會回傳此數值給您。 此訊息 ID 是由 Amazon SES 指派。您可以在原始電子郵件內 `headers` 物件的 `commonHeaders` 與 `mail` 欄位找到訊息 ID。  | 
| `source` | 傳送出該訊息的電子郵件地址 (信封的「寄件人」地址)。 | 
| `sourceArn` | 用以傳送電子郵件之身分的 Amazon Resource Name (ARN)。在傳送授權的情況下，`sourceArn` 為身分持有者授權給委託寄件者之身分的 ARN，用以傳送電子郵件。如需關於傳送授權的詳細資訊，請參閱 [電子郵件身分驗證方法使用傳送授權](sending-authorization.md)。 | 
| `sendingAccountId` | 用來傳送電子郵件之帳戶的帳戶 AWS ID。在傳送授權的情況下，`sendingAccountId` 為委託寄件者的帳戶 ID。 | 
| `destination` | 原始郵件收件人的電子郵件地址清單。 | 
| `headersTruncated` | 說明通知中的標題是否已截斷的字串，會在標題大於 10 KB 時顯示。可能值為 `true` 和 `false`。 | 
| `headers` | 電子郵件原始標題的清單。清單中的每項標題都有 `name` 欄位與 `value` 欄位。 `headers` 欄位中的任何訊息 ID 都來自於您傳遞給 Amazon SES 的原始訊息。Amazon SES 隨即指派給訊息的訊息 ID 位於 `mail` 物件的 `messageId` 欄位內。  | 
| `commonHeaders` | 電子郵件常用的原始標頭映射。 任何 `commonHeaders` 欄位內的訊息 ID 皆為 Amazon SES 隨即指派給訊息的訊息 ID，位於 `mail` 物件的 `messageId` 欄位內。  | 
| `tags` | 與電子郵件相關聯的標籤清單。 | 

## 退信物件
<a name="event-publishing-retrieving-sns-contents-bounce-object"></a>

其中包含 `Bounce` 事件相關資訊的 JSON 物件有下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `bounceType` | 退信類型，由 Amazon SES 判定。 | 
| `bounceSubType` | 退信的副類型，由 Amazon SES 判定。 | 
| `bouncedRecipients` | 其中包含遭退信的原始郵件收件人之相關資訊的清單。 | 
| `timestamp` | ISP 傳送退信通知時的日期和時間，其格式為 ISO8601 格式 (*YYYY-MM-DDThh:mm:ss.sZ*)。 | 
| `feedbackId` | 退信的唯一 ID。 | 
| `reportingMTA` | 來自 DSN 的 `Reporting-MTA` 欄位數值。這是嘗試執行傳遞、轉傳或閘道操作的 Message Transfer Authority (MTA) 值，如 DSN 中所述。 此欄位只有在傳遞狀態通知 (DSN) 與退信連接時才會顯示。  | 

### 退信的收件人
<a name="event-publishing-retrieving-sns-contents-bounced-recipients"></a>

退信事件可能與單一收件人或多個收件人相關。`bouncedRecipients` 欄位擁有物件清單 (電子郵件地址發生退信的每個收件人都有一個物件)，且包含下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `emailAddress` | 收件人的電子郵件地址。若有可用的 DSN，此為來自 DSN 的 `Final-Recipient` 欄位值。 | 

或者，如果 DSN 連接到退信，也可能會顯示下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `action` | 來自 DSN 的 `Action` 欄位數值。這表示回報 MTA 所執行的動作為嘗試傳送訊息給此收件人的結果。 | 
| `status` | 來自 DSN 的 `Status` 欄位數值。此為每個收件人的獨立傳輸狀態碼，表示訊息的傳遞狀態。 | 
| `diagnosticCode` | 由回報 MTA 發出的狀態碼。此為來自 DSN 的 `Diagnostic-Code` 欄位數值。此欄位可能不會在 DSN 中顯示 (因而也不會在 JSON 中顯示)。 | 

### 退信類型
<a name="event-publishing-retrieving-sns-contents-bounce-types"></a>

每個退信事件都是下表所列的其中一個類型。

事件發佈系統只會發佈 Amazon SES 不會再重試傳送的硬退信與軟退信。當您收到標示為 `Permanent` 的退信時，您應該從電子清單中移除對應的電子郵件地址，您將來無法再傳送給他們。當訊息發生多次軟退信時，您會收到 `Transient` 退信，而 Amazon SES 會停止嘗試重新遞送該訊息。未來您也許可以成功重新傳送給一開始導致 `Transient` 退信的地址。


| bounceType | bounceSubType | 說明 | 
| --- | --- | --- | 
| `Undetermined` | `Undetermined` | Amazon SES 無法判斷具體退信原因。 | 
| `Permanent` | `General` | Amazon SES 收到一般硬退信。如果您收到此類退信，應該從您的郵寄清單中移除該收件人的電子郵件地址。 | 
| `Permanent` | `NoEmail` | Amazon SES 收到永久硬退信，因為目標電子郵件地址不存在。如果您收到此類退信，應該從您的郵寄清單中移除該收件人的電子郵件地址。 | 
| `Permanent` | `Suppressed` | Amazon SES 已禁止寄至此地址的傳送，因為它最近因無效地址而出現退信歷程記錄。若要複寫全域禁止名單，請參閱 [使用 Amazon SES 帳戶層次禁止名單](sending-email-suppression-list.md)。 | 
| Permanent | OnAccountSuppressionList | Amazon SES 已禁止傳送至此地址，因為它列於[帳戶層級禁止名單](sending-email-suppression-list.md)中。這不會計入您的退信率指標。 | 
| Permanent | EmailValidationSuppressed | Amazon SES 已禁止傳送至此地址，因為地址不符合[電子郵件驗證設定的](email-validation-auto.md)閾值。 | 
| Permanent | OnTenantSuppressionList | Amazon SES 已禁止傳送到此地址，因為它位於[租用戶層級禁止名單](sending-email-suppression-list-tenant-level.md)中。這不會計入您的退信率指標。 | 
| `Transient` | `General` | Amazon SES 收到一般退信。未來您也許可成功傳送給此收件人。 | 
| `Transient` | `MailboxFull` | Amazon SES 收到信箱已滿退信。未來您也許可成功傳送給此收件人。 | 
| `Transient` | `MessageTooLarge` | Amazon SES 收到訊息過大退信。若您減少訊息大小，也許可成功傳送給此收件人。 | 
| `Transient` | `CustomTimeoutExceeded` | Amazon SES 無法在電子郵件寄件者指定的時間內成功傳送電子郵件。*（退信訊息將指定定義 TTL 內任何可能交付嘗試失敗的原因。)*  | 
| `Transient` | `ContentRejected` | Amazon SES 收到內容遭拒退信。若您更改訊息內容，也許可成功傳送給此收件人。 | 
| `Transient` | `AttachmentRejected` | Amazon SES 收到附件遭拒退信。若您移除或更改附件，也許可成功傳送給此收件人。 | 

## 投訴物件
<a name="event-publishing-retrieving-sns-contents-complaint-object"></a>

其中包含 `Complaint` 事件相關資訊的 JSON 物件有下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `complainedRecipients` | 清單中包含可能曾提出投訴的收件人相關資訊。 | 
| `timestamp` | ISP 傳送抱怨通知時的日期和時間，其格式為 ISO8601 格式 (*YYYY-MM-DDThh: mm: ss.sZ*)。 | 
| `feedbackId` | 投訴的唯一 ID。 | 
| `complaintSubType` | 投訴的子類型，由 Amazon SES 判定。 | 

此外，如果意見回饋報告連接到該投訴，可能顯示下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `userAgent` | 來自意見回饋報告的 `User-Agent` 欄位數值。這表示產生報告的系統名稱和版本。 | 
| `complaintFeedbackType` | 自 ISP 傳送的意見回饋報告中的 `Feedback-Type` 欄位數值。這包含意見回饋的類型。 | 
| `arrivalDate` | 來自回饋報告的 `Arrival-Date` 或 `Received-Date` 欄位值，其格式為 ISO8601 格式 (*YYYY-MM-DDThh:mm:ss.sZ*)。此欄位可能不會在報告中顯示 (因而也不會在 JSON 中顯示)。 | 

### 提出投訴的收件人
<a name="event-publishing-retrieving-sns-contents-complained-recipients"></a>

`complainedRecipients` 欄位包含可能曾提出投訴的收件人清單。

**重要**  
大多數 ISP 會修改提出抱怨的收件人之電子郵件地址。因此，`complainedRecipients` 欄位將包含曾收過電子郵件、且地址位於發出抱怨通知的網域內之所有地址的清單。

在這個清單中的 JSON 物件包含下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `emailAddress` | 收件人的電子郵件地址。 | 

### 抱怨類型
<a name="event-publishing-retrieving-sns-contents-complaint-types"></a>

您可能看到 `complaintFeedbackType` 欄位中由回報 ISP 根據 [Internet Assigned Numbers Authority website](https://www.iana.org/assignments/marf-parameters/marf-parameters.xml#marf-parameters-2) 指派的下列投訴類型：


| 欄位名稱 | 說明 | 
| --- | --- | 
| `abuse` | 指出自動發出的電子郵件或其他形式的電子郵件濫用。 | 
| `auth-failure` | 電子郵件身分驗證故障報告。 | 
| `fraud` | 指示某些形式的詐騙或網路釣魚活動。 | 
| `not-spam` | 指示提供報告的實體不會將訊息視為垃圾郵件。這可能會用於修正內含不正確標籤或者被歸類為垃圾郵件的訊息。 | 
| `other` | 指示不符合其他註冊類型的任何其他意見回饋。 | 
| `virus` | 回報在原始訊息中找到病毒。 | 

### 抱怨子類型
<a name="event-publishing-retrieving-sns-contents-complaint-subtypes"></a>

`complaintSubType` 欄位的值可以是 null 或 `OnAccountSuppressionList`。如果該值為 `OnAccountSuppressionList`，Amazon SES 會接受訊息，但不會嘗試傳送它，因為它位在[帳戶層級禁止名單](sending-email-suppression-list.md)中。`OnTenantSuppressionList` 如果地址在[租戶層級禁止名單](sending-email-suppression-list-tenant-level.md)中，則值也可以是 。

## 交付物件
<a name="event-publishing-retrieving-sns-contents-delivery-object"></a>

其中包含 `Delivery` 事件相關資訊的 JSON 物件有下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `timestamp` | Amazon SES 傳遞電子郵件到收件人的郵件伺服器之日期和時間，以 ISO8601 格式 (*YYYY-MM-DDThh:mm:ss.sZ*) 顯示。 | 
| `processingTimeMillis` | 從 Amazon SES 接受來自寄件者請求，到 Amazon SES 將訊息傳遞給收件人電子郵件伺服器之間的毫秒數。 | 
| `recipients` | 套用傳遞事件的預期收件人清單。 | 
| `smtpResponse` | 接受 Amazon SES 所傳送電子郵件的遠端 ISP 之 SMTP 回應訊息。此訊息會隨著電子郵件、接收郵件伺服器以及接收 ISP 而有所不同。 | 
| `reportingMTA` | 傳送郵件的 Amazon SES 郵件伺服器主機名稱。 | 
| `remoteMtaIp` | Amazon SES 傳送電子郵件的 MTA IP 地址。 | 

## 傳送物件
<a name="event-publishing-retrieving-sns-contents-send-object"></a>

包含關於 `send` 事件資訊的 JSON 物件將一律為空白。

## 拒絕物件
<a name="event-publishing-retrieving-sns-contents-reject-object"></a>

其中包含 `Reject` 事件相關資訊的 JSON 物件有下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `reason` | 電子郵件遭拒的原因。唯一可能的值為 `Bad content`，這表示 Amazon SES 偵測到電子郵件包含病毒。當訊息遭到拒絕時，Amazon SES 會停止處理訊息，且不會嘗試將它遞送到收件人的電子郵件伺服器。 | 

## 開啟物件
<a name="event-publishing-retrieving-sns-contents-open-object"></a>

其中包含 `Open` 事件相關資訊的 JSON 物件有下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `ipAddress` | 收件人的 IP 地址。 | 
| `timestamp` | 開啟事件發生時的日期和時間，其格式為 ISO8601 格式 (*YYYY-MM-DDThh:mm:ss.sZ*)。 | 
| `userAgent` | 收件人用於開啟電子郵件中的連結的裝置或電子郵件用戶端使用者代理程式。 | 

## 點選物件
<a name="event-publishing-retrieving-sns-contents-click-object"></a>

其中包含 `Click` 事件相關資訊的 JSON 物件有下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `ipAddress` | 收件人的 IP 地址。 | 
| `timestamp` | 點擊事件發生時的日期和時間，其格式為 ISO8601 格式 (*YYYY-MM-DDThh:mm:ss.sZ*)。 | 
| `userAgent` | 收件人用於點選電子郵件中的連結的用戶端使用者代理程式。 | 
| `link` | 收件人點選的 URL 連結。 | 
| `linkTags` | 使用 `ses:tags` 屬性新增到連結的標籤清單。如需新增標籤至電子郵件中連結的相關資訊，請參閱 [問題 5：我可以使用獨特的識別碼來標籤連結嗎？](faqs-metrics.md#sending-metric-faqs-clicks-q5) 中的 [Amazon SES 電子郵件傳送指標常見問答集](faqs-metrics.md)。 | 

## 算圖失敗物件
<a name="event-publishing-retrieving-sns-contents-failure-object"></a>

其中包含 `Rendering Failure` 事件相關資訊的 JSON 物件有下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `templateName` | 用於傳送電子郵件的範本名稱。 | 
| `errorMessage` | 提供更多關於轉譯失敗資訊的訊息。 | 

## DeliveryDelay 物件
<a name="event-publishing-retrieving-sns-contents-delivery-delay-object"></a>

其中包含 `DeliveryDelay` 事件相關資訊的 JSON 物件有下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `delayType` | 延遲的類型。可能值為：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/event-publishing-retrieving-sns-contents.html) | 
| `delayedRecipients` | 包含有關電子郵件收件人資訊的物件。 | 
| `expirationTime` | Amazon SES 將停止嘗試傳遞訊息的日期和時間。此數值以 ISO 8601 格式顯示。 | 
| `reportingMTA` | 報告延遲之郵件傳輸代理程式 (MTA) 的 IP 地址。 | 
| `timestamp` | 延遲發生的日期和時間，以 ISO 8601 格式顯示。 | 

### 延遲的收件人
<a name="event-publishing-retrieving-sns-contents-delivery-delay-object-recipients"></a>

`delayedRecipients` 物件包含下列數值：


| 欄位名稱 | 說明 | 
| --- | --- | 
| `emailAddress` | 導致訊息傳遞延遲的電子郵件地址。 | 
| `status` | 與傳遞延遲相關聯的 SMTP 狀態碼。 | 
| `diagnosticCode` | 接收訊息傳輸代理程式 (MTA) 所提供的診斷代碼。 | 

## 訂閱物件
<a name="event-publishing-retrieving-sns-contents-subscription-object"></a>

其中包含 `Subscription` 事件相關資訊的 JSON 物件有下列欄位。


| 欄位名稱 | 說明 | 
| --- | --- | 
| `contactList` | 聯絡人名稱清單為開啟。 | 
| `timestamp` | ISP 傳送訂閱通知時的日期和時間，其格式為 ISO8601 格式 *(YYYY-MM-DDThh:mm:ss.sZ)*。 | 
| `source` | 傳送出該訊息的電子郵件地址 (信封的「寄件人」地址)。 | 
| `newTopicPreferences` | JSON 資料結構 (映射) 指定聯絡清單中所有主題的訂閱狀態，顯示更改後的狀態 (已訂閱或已取消訂閱)。 | 
| `oldTopicPreferences` | JSON 資料結構 (映射) 指定聯絡清單中所有主題的訂閱狀態，顯示更改前的狀態 (已訂閱或已取消訂閱)。 | 

### 新/舊主題偏好
<a name="event-publishing-retrieving-sns-contents-subscription-object-topic-preferences"></a>

`newTopicPreferences` 和 `oldTopicPreferences` 物件包含下列數值：


| 欄位名稱 | 說明 | 
| --- | --- | 
| `unsubscribeAll` | 指定聯絡人是否取消聯絡清單中的所有主題。 | 
| `topicSubscriptionStatus` | 在 `topicName` 欄位中指定主題的訂閱狀態，指出主題目前是否訂閱接收來自指定事件類型的 SES 通知。可能的值為 `subscriptionStatus` 欄位中的 **OptIn** （已訂閱） 或 **OptOut** （未訂閱）。 | 
| `topicDefaultSubscriptionStatus` | 在 `topicName` 欄位中指定主題的預設訂閱狀態，以決定新增至事件目的地的新主題預設是訂閱還是取消訂閱。在 `subscriptionStatus` 欄位中，可能的值為 **OptIn** （預設訂閱） 或 **OptOut** （預設取消訂閱）。 | 