

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

# 設定 Amazon SES 的事件通知
<a name="monitor-sending-activity-using-notifications"></a>

若要使用 Amazon SES 傳送電子郵件，您必須擁有用於管理退信和投訴的系統。Amazon SES 可以透過三種方式通知您發生退信或投訴：傳送電子郵件、通知 Amazon SNS 主題，或是發佈傳送事件。本節包含設定 Amazon SES 來透過電子郵件或通知 Amazon SNS 主題，傳送特定類型通知的資訊。如需發佈傳送事件的詳細資訊，請參閱 [使用 Amazon SES 事件發佈監控電子郵件傳送](monitor-using-event-publishing.md)。

您可以使用 Amazon SES 主控台或 Amazon SES API 來設定通知。

**Topics**
+ [重要考量](#monitor-sending-activity-using-notifications-considerations)
+ [透過電子郵件接收 Amazon SES 通知](monitor-sending-activity-using-notifications-email.md)
+ [使用 Amazon SNS 接收 Amazon SES 通知](monitor-sending-activity-using-notifications-sns.md)

## 重要考量
<a name="monitor-sending-activity-using-notifications-considerations"></a>

設定 Amazon SES 傳送通知時，有幾點重要的考量事項：
+ 電子郵件和 Amazon SNS 通知會套用到個別身分 (經驗證的電子郵件地址或您用來傳送電子郵件的網域)。當您啟用身分的通知時，Amazon SES 只會針對從該身分傳送的電子郵件傳送通知，而且只會在您設定通知的 AWS 區域中傳送通知。
+ 您必須啟用一種接收退信或抱怨通知的方法。您可以將通知傳送到產生退信或投訴的網域或電子郵件地址，或是 Amazon SNS 主題。您也可以使用[事件發佈](monitor-using-event-publishing.md)，將多種不同類型事件 （包括退信、投訴、交付等） 的通知傳送至 Amazon SNS 主題或 Firehose 串流。

  若您沒有設定其中一種接收退信或投訴通知的方法，Amazon SES 會自動將退信和投訴通知轉送到導致退信或投訴事件電子郵件中的傳回路徑地址 (或是若您沒有指定傳回路徑地址的話，則為來源地址)，即使您停用電子郵件回饋轉送也一樣。

  若您停用電子郵件回饋並啟用事件發佈，您必須將包含事件發佈規則的組態集套用到所有您傳送的電子郵件。在此情況下，若您沒有使用組態集，Amazon SES 會自動將退信和投訴通知傳送到導致退信或投訴事件電子郵件中的傳回路徑或來源地址。
+ 若您使用一種以上的方法設定 Amazon SES 傳送退信和投訴事件 (例如透過傳送電子郵件通知和透過使用傳送事件)，您便會針對相同的事件收到一個以上的通知。

# 透過電子郵件接收 Amazon SES 通知
<a name="monitor-sending-activity-using-notifications-email"></a>

當您收到退信和投訴時，Amazon SES 可以使用稱為*電子郵件意見回饋轉送*的程序向您傳送電子郵件。

若要使用 Amazon SES 傳送電子郵件，您必須使用下列其中一種方法，將其設定為傳送退信和投訴通知：
+ 啟用電子郵件意見轉送。本節包含設定此類通知的程序。
+ 將通知傳送至 Amazon SNS 主題。如需詳細資訊，請參閱[使用 Amazon SNS 接收 Amazon SES 通知](monitor-sending-activity-using-notifications-sns.md)。
+ 發佈事件通知。如需詳細資訊，請參閱「[使用 Amazon SES 事件發佈監控電子郵件傳送](monitor-using-event-publishing.md)」。

**重要**  
關於通知的數項要點，請參閱 [設定 Amazon SES 的事件通知](monitor-sending-activity-using-notifications.md)。

**Topics**
+ [啟用電子郵件意見回饋轉送](#monitor-sending-activity-using-notifications-email-enabling)
+ [停用電子郵件意見回饋轉送](#monitor-sending-activity-using-notifications-email-disabling)
+ [電子郵件意見回饋轉送目的地](#monitor-sending-activity-using-notifications-email-destination)

## 啟用電子郵件意見回饋轉送
<a name="monitor-sending-activity-using-notifications-email-enabling"></a>

根據預設，將啟用電子郵件意見轉送功能。若您之前已停用該功能，可依照本節中說明之程序來啟用。

**使用 Amazon SES 主控台來啟用透過電子郵件轉送退信與投訴的功能**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)：// 開啟 Amazon SES 主控台。

1. 在導覽窗格中的 **Configuration** (組態) 下，選擇 **Verified identities** (已驗證身分)。

1. 在已驗證電子郵件地址或網域清單中，選擇您想要設定退信與抱怨通知的電子郵件地址或網域。

1. 在詳細資訊窗格中，展開 **Notifications (通知)** 區段。

1. 選擇 **Edit Configuration (編輯組態)**。

1. 在 **Email Feedback Forwarding** (電子郵件意見回饋轉送) 下，選擇 **Enabled (已啟用)**。
**注意**  
您對此頁面進行的變更可能需要幾分鐘才會生效。

您也可以使用 [SetIdentityFeedbackForwardingEnabled](https://docs.aws.amazon.com/ses/latest/APIReference/API_SetIdentityFeedbackForwardingEnabled.html) API 操作來啟用透過電子郵件接收退信和抱怨通知功能。

## 停用電子郵件意見回饋轉送
<a name="monitor-sending-activity-using-notifications-email-disabling"></a>

如果您設定其他提供退信和抱怨通知的方法，您可以停用電子郵件回饋轉送功能，在發生退信或抱怨事件時您即不會收到多次通知。

**使用 Amazon SES 主控台來停用透過電子郵件轉送退信與投訴的功能**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/) 的 Amazon SES 主控台。

1. 在導覽窗格中的 **Configuration** (組態) 下，選擇 **Verified identities** (已驗證身分)。

1. 在已驗證電子郵件地址或網域清單中，選擇您想要設定退信與抱怨通知的電子郵件地址或網域。

1. 在詳細資訊窗格中，展開 **Notifications (通知)** 區段。

1. 選擇 **Edit Configuration (編輯組態)**。

1. 在 **Email Feedback Forwarding (電子郵件意見轉送)** 下，選擇 **Disabled (已停用)**。
**注意**  
您必須至少設定一種接收退信和投訴通知的方法，才能透過 Amazon SES 傳送電子郵件。如果您停用電子郵件意見回饋轉送，則必須啟用 Amazon SNS 傳送的通知，或使用事件發佈將退信和投訴事件發佈至 Amazon SNS 主題或 Firehose [使用 Amazon SES 事件發佈監控電子郵件傳送](monitor-using-event-publishing.md)串流。如果您使用事件發佈，您也必須將包含事件發佈規則的設定集套用於您傳送的每一封電子郵件。如果您未設定接收退信和投訴通知的方法，Amazon SES 會自動將意見回饋通知轉送到導致退信或投訴事件之訊息的傳回路徑欄位 (如果您沒有指定傳回路徑地址，則為來源欄位)。在此情況下，即使您停用電子郵件意見回饋通知，Amazon SES 也會轉送退信和投訴通知。

1. 選擇 **Save Config (儲存組態)** 以儲存您的通知組態。
**注意**  
您對此頁面進行的變更可能需要幾分鐘才會生效。

您也可以停用 [SetIdentityFeedbackForwardingEnabled](https://docs.aws.amazon.com/ses/latest/APIReference/API_SetIdentityFeedbackForwardingEnabled.html) API 操作來停用透過電子郵件接收退信和抱怨通知功能。

## 電子郵件意見回饋轉送目的地
<a name="monitor-sending-activity-using-notifications-email-destination"></a>

當您透過電子郵件接收通知時，Amazon SES 會重新編寫 `From` 標頭並傳送通知給您。接收 Amazon SES 所轉送通知的地址取決於傳送原始訊息的地址。

若您使用 SMTP 介面來傳送訊息，則會根據以下規則傳送通知：
+ 若您在 `SMTP DATA` 區段中指定 `Return-Path` 標頭，則通知就會傳送至該地址。
+ 否則，通知會傳送至您發出 MAIL FROM 命令時指定的地址。

若您使用 `SendEmail` API 操作來傳送訊息，將根據以下規則傳送通知：
+ 若您在對 `SendEmail` API 的呼叫中指定選用 `ReturnPath` 參數，則通知將寄往該地址。
+ 否則，通知將寄往 `SendEmail` 的 `Source` 參數中指定的地址。

若您使用 `SendRawEmail` API 操作來傳送訊息，將根據以下規則傳送通知：
+ 若您在原始訊息中指定 `Return-Path` 標頭，則通知就會傳送至該地址。
+ 否則，若您在對 `SendRawEmail` API 的呼叫中指定 `Source` 參數，通知就會傳送至該地址。
+ 否則，通知將寄往原始訊息的「`From`」標題中的地址。

**注意**  
您在電子郵件中指定 `Return-Path` 地址時，您就會在該地址收到通知。不過，收件人接收的訊息版本會包含 `Return-Path` 標題，其中包含匿名的電子郵件地址 (如 *a0b1c2d3e4f5a6b7-c8d9e0f1-a2b3-c4d5-e6f7-a8b9c0d1e2f3-000000@amazonses.com*)。不論您傳送電子郵件的方式為何，此匿名處理都會發生。

# 使用 Amazon SNS 接收 Amazon SES 通知
<a name="monitor-sending-activity-using-notifications-sns"></a>

您可以將 Amazon SES 設定為在收到退信、投訴或電子郵件遞送時通知 Amazon SNS 主題。Amazon SNS 通知以 [ JavaScript Object Notation (JSON)](http://www.json.org) 格式顯示，可讓您以程式設計方式處理通知。

若要使用 Amazon SES 傳送電子郵件，您必須使用下列其中一種方法，將其設定為傳送退信和投訴通知：
+ 將通知傳送至 Amazon SNS 主題。本節包含設定此類通知的程序。
+ 啟用電子郵件意見轉送。如需詳細資訊，請參閱[透過電子郵件接收 Amazon SES 通知](monitor-sending-activity-using-notifications-email.md)。
+ 發佈事件通知。如需詳細資訊，請參閱[使用 Amazon SES 事件發佈監控電子郵件傳送](monitor-using-event-publishing.md)。

**重要**  
請參閱[設定 Amazon SES 的事件通知](monitor-sending-activity-using-notifications.md)以取得關於通知的重要資訊。

**Topics**
+ [設定 Amazon SES 的 Amazon SNS 通知](configure-sns-notifications.md)
+ [Amazon SES 的 Amazon SNS 通知內容](notification-contents.md)
+ [Amazon SES 的 Amazon SNS 通知範例](notification-examples.md)

# 設定 Amazon SES 的 Amazon SNS 通知
<a name="configure-sns-notifications"></a>

Amazon SES 可透過 [Amazon Simple Notification Service (Amazon SNS)](https://aws.amazon.com/sns) 來通知您退信、投訴與遞送訊息。

您可以在 Amazon SES 主控台中或使用 Amazon SES API 設定通知。

**Topics**
+ [先決條件](#configure-feedback-notifications-prerequisites)
+ [使用 Amazon SES 主控台設定通知](#configure-feedback-notifications-console)
+ [使用 Amazon SES API 設定通知](#configure-feedback-notifications-api)
+ [意見回饋通知疑難排解](#configure-feedback-notifications-troubleshooting)

## 先決條件
<a name="configure-feedback-notifications-prerequisites"></a>

在 Amazon SES 中設定 Amazon SNS 通知前，請完成下列步驟：

1. 在 Amazon SNS 中建立一個主題。如需詳細資訊，請參閱 *Amazon Simple Notification Service 開發人員指南*中的[建立主題](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)。
**重要**  
使用 Amazon SNS 建立主題時，針對 **Type (類型)**，請只選擇 **Standard (標準)**。(SES 不支援 FIFO 類型的主題。)

   無論您建立新的 SNS 主題還是選取現有主題，都必須授與 SES 的存取權，才能將通知發佈至主題。

   若要授予 Amazon SES 將通知發佈到主題的許可，請在 SNS 主控台的 **Edit topic (編輯主題)** 畫面中，展開 **Access policy (存取政策)**，並在 **JSON editor (JSON 編輯器)** 下新增下列許可政策：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "notification-policy",
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "ses.amazonaws.com"
               },
               "Action": "sns:Publish",
               "Resource": "arn:aws:sns:us-east-1:111122223333:topic_name",
               "Condition": {
                   "StringEquals": {
                       "AWS:SourceAccount": "111122223333",
                       "AWS:SourceArn": "arn:aws:ses:topic_region:111122223333:identity/identity_name"
                   }
               }
           }
       ]
   }
   ```

------

   在上述範例政策中進行下列變更：
   + 將 *topic\$1region* 取代為您建立 SNS 主題 AWS 的區域。
   + 將 *111122223333* 取代為您的 AWS 帳戶 ID。
   + 將 *topic\$1name* 取代為您的 SNS 主題名稱。
   + 將 *identity\$1name* 取代為您訂閱 SNS 主題的已驗證身分 (電子郵件地址或網域)。

1. 需至少訂閱一個端點至該主題。例如，如果您想要透過文字訊息接收通知，請訂閱 SMS 端點 (也就是行動電話號碼) 至主題。要透過電子郵件接收通知，請訂閱電子郵件端點 (電子郵件地址) 至該主題。

   如需詳細資訊，請參閱 *Amazon Simple Notification Service 開發人員指南*中的[入門](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)。

1. （選用） 如果您的 Amazon SNS 主題使用 AWS Key Management Service (AWS KMS) 進行伺服器端加密，您必須將許可新增至 AWS KMS 金鑰政策。您可以將下列政策連接至 AWS KMS 金鑰政策來新增許可：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowSESToUseKMSKey",
               "Effect": "Allow",
               "Principal": {
                   "Service": "ses.amazonaws.com"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

## 使用 Amazon SES 主控台設定通知
<a name="configure-feedback-notifications-console"></a>

**使用 Amazon SES 主控台來設定通知**

1. 開啟 Amazon SES 主控台，網址為 [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)。

1. 在導覽窗格中的**組態**下，選擇**身分**。

1. 在 **Identities** (身分) 容器中，選取您要接收意見回饋通知的已驗證身分 (於從此身分傳送的郵件產生退信、投訴或遞送結果時收到通知)。
**重要**  
驗證網域通知設定適用於所有由位於該網域中之電子郵件地址所寄出的郵件，*除了*已驗證的電子郵件地址。

1. 在您選取的已驗證身分的詳細資訊畫面中，選擇 **Notifications** (通知) 索引標籤，並選取 **Feedback notifications** (意見回饋通知) 容器中的 **Edit** (編輯)。

1. 展開您要接收通知的每種意見回饋類型的 SNS 主題清單方塊，然後選取您擁有的 SNS 主題、**No SNS topic** (無 SNS 主題) 或 **SNS topic you don’t own** (您未擁有的 SNS 主題)。

   1. 如果您選擇 **SNS topic you don’t own** (您未擁有的 SNS 主題)，則會顯示 **SNS topic ARN** (SNS 主題 ARN) 欄位，您必須輸入委派寄件者與您分享的 SNS 主題 ARN。(只有您的委派寄件者會收到這些通知，因為他們擁有 SNS 主題。 若要進一步了解委派傳送，請參閱 [傳送授權概觀](sending-authorization-overview.md)。)
**重要**  
您用於退信、投訴和交付通知的 Amazon SNS 主題必須 AWS 區域 與您使用 Amazon SES 的相同。  
此外，您必須為一或多個端點訂閱主題才能接收通知。例如，如果您想要將通知傳送到電子郵件地址，則必須訂閱將電子郵件端點訂閱至主題。如需詳細資訊，請參閱 *Amazon Simple Notification Service 開發人員指南*中的[入門](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)。

1. (選用) 如果您希望主題通知包含原始電子郵件的標頭，請在各種意見回饋類型的 SNS 主題名稱正下方勾選 **Include original email headers** (包含原始電子郵件標頭) 方塊。此選項僅適用於您將 Amazon SNS 主題指派至相關聯通知類型的情況。如需有關原始電子郵件標題內容的詳細資訊，請參閱 [通知內容](notification-contents.md) 中的 `mail` 物件。

1. 選擇**儲存變更**。您對通知設定所作的變動可能需要幾分鐘的時間才會生效。

1. (選用) 如果您選擇退信和投訴兩種 Amazon SNS 主題通知，可完全停用電子郵件通知，這樣您就不會同時透過電子郵件和 SNS 通知收到雙重通知。若要停用退信和投訴的電子郵件通知，請在 **Notifications** (通知) 索引標籤下進入已驗證身分詳細資訊畫面上的 **Email Feedback Forwarding** (電子郵件意見轉送) 容器中，然後依序選擇 **Edit** (編輯)、取消勾選 **Enabled** (已啟用) 方塊、選擇 **Save changes** (儲存變更)。

設定完成後，將開始接收退信、投訴和/或遞送通知到 Amazon SNS 主題。這些通知會以 JavaScript 物件符號 (JSON) 格式顯示，並遵循 [通知內容](notification-contents.md) 中所述之結構。

您將需針對退信、投訴和遞送通知支付標準 Amazon SNS 費率。如需詳細資訊，請參閱 [Amazon SNS 定價頁面](https://aws.amazon.com/sns/pricing)。

**注意**  
如果因為主題已刪除或 AWS 帳戶 不再具有發佈許可而嘗試發佈至 Amazon SNS 主題失敗，則如果該主題已設定為退信或投訴 （非交付 - 對於交付通知，SES 不會刪除 SNS 主題組態設定），則 Amazon SES 會移除該主題的組態。此外，Amazon SES 會重新啟用身分的退信和投訴電子郵件通知，而且您會透過電子郵件收到變更通知。如果將多個身分設定為使用主題，則每個身分發佈到主題失敗時，都會變更每個身分的主題組態。

## 使用 Amazon SES API 設定通知
<a name="configure-feedback-notifications-api"></a>

您也可以使用 Amazon SES API 來設定退信、投訴和遞送通知。使用以下操作來設定通知：
+ [SetIdentityNotificationTopic](https://docs.aws.amazon.com/ses/latest/APIReference/API_SetIdentityNotificationTopic.html)
+ [SetIdentityFeedbackForwardingEnabled](https://docs.aws.amazon.com/ses/latest/APIReference/API_SetIdentityFeedbackForwardingEnabled.html)
+ [GetIdentityNotificationAttributes](https://docs.aws.amazon.com/ses/latest/APIReference/API_GetIdentityNotificationAttributes.html)
+ [SetIdentityHeadersInNotificationsEnabled](https://docs.aws.amazon.com/ses/latest/APIReference/API_SetIdentityHeadersInNotificationsEnabled.html)

您可以使用這些 API 動作來為通知撰寫自訂的前端應用程式。如需關於通知相關 API 動作的完整說明，請參閱 [Amazon Simple Email Service API 參考資料](https://docs.aws.amazon.com/ses/latest/APIReference/)。

## 意見回饋通知疑難排解
<a name="configure-feedback-notifications-troubleshooting"></a>

**未接收通知**  
如果您沒有收到通知，請確定您已訂閱端點至透過傳送通知的主題。當您訂閱電子郵件端點至主題時，您會收到一封電子郵件，要求您確認訂閱。您必須先確認訂閱，才能開始接收電子郵件通知。如需詳細資訊，請參閱 *Amazon Simple Notification Service 開發人員指南*中的[入門](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)。

**選擇主題時出現 `InvalidParameterValue` 錯誤**  
如果您收到錯誤，指出發生 `InvalidParameterValue` 錯誤，請查看 Amazon SNS 主題確認是否已使用 AWS KMS加密。如果是，您必須修改 AWS KMS 金鑰的政策。請參閱 [先決條件](#configure-feedback-notifications-prerequisites) 獲得更多範例政策。

# Amazon SES 的 Amazon SNS 通知內容
<a name="notification-contents"></a>

退信、投訴和遞送通知會以 JavaScript 物件標記法 (JSON) 格式發佈到 [Amazon Simple Notification Service (Amazon SNS)](https://aws.amazon.com/sns) 主題。最上層 JSON 物件包含一個 `notificationType` 字串、`mail` 物件，或者 `bounce` 物件、`complaint` 物件或 `delivery` 物件。

請參閱以下章節以了解不同類型物件的說明：
+ [最上層 JSON 物件](#top-level-json-object)
+ [`mail` 物件](#mail-object)
+ [`bounce` 物件](#bounce-object)
+ [`complaint` 物件](#complaint-object)
+ [`delivery` 物件](#delivery-object)

以下幾點重要備註與 Amazon SES 的 Amazon SNS 通知內容相關：
+ 使用指定通知類型時，您可能會收到針對多個收件人的 Amazon SNS 通知，或者針對每個收件人各收到單一 Amazon SNS 通知。您的程式碼應該能夠剖析 Amazon SNS 通知並處理這兩種情況；SES 不會對透過 Amazon SNS 傳送的通知進行排序或批次處理保證。但是，不同 Amazon SNS 通知類型 (例如退信與投訴) 不會合併為單一通知。
+ 您可能會收到針對一個收件人的多種 Amazon SNS 通知類型。例如，接收郵件伺服器可能會接受電子郵件 (觸發傳遞通知)，但在處理電子郵件後，接收郵件伺服器可能會判斷電子郵件是否確實導致退信 (觸發退信通知)。但是，由於這些通知屬於不同類型，因此會一律以個別通知顯示。
+ SES 保留將其他欄位新增至通知的權利。因此，剖析這些通知的應用程式必須具備足夠的彈性，以處理未知欄位。
+ SES 會在傳送電子郵件時覆寫訊息的標頭。您可以從 `headers` 物件的 `commonHeaders` 與 `mail` 欄位擷取原始訊息標題。

## 最上層 JSON 物件
<a name="top-level-json-object"></a>

SES 通知中的最上層 JSON 物件包含下列欄位。


| 欄位名稱 | Description | 
| --- | --- | 
| notificationType |  擁有由 JSON 物件呈現的通知類型之字串。可能值為 `Bounce`、`Complaint` 或 `Delivery`。 如果您[設定事件發佈](monitor-sending-using-event-publishing-setup.md)，此欄位名稱為 `eventType`。  | 
| mail |  其中包含與通知相關之原始電子郵件資訊的 JSON 物件。如需詳細資訊，請參閱「[郵件物件](#mail-object)」。  | 
| bounce |  此欄位只會在 `notificationType` 為 `Bounce` 並包含有關於退信資訊的 JSON 物件時才會顯示。如需詳細資訊，請參閱「[退信物件](#bounce-object)」。  | 
| complaint |  此欄位只會在 `notificationType` 為 `Complaint` 並包含有關於投訴資訊的 JSON 物件時才會顯示。如需詳細資訊，請參閱[投訴物件](#complaint-object)。  | 
| delivery |  此欄位只會在 `notificationType` 為 `Delivery` 並包含有關於傳遞資訊的 JSON 物件時才會顯示。如需詳細資訊，請參閱[交付物件](#delivery-object)。  | 

## 郵件物件
<a name="mail-object"></a>

每個退信、投訴和傳遞通知包含原始電子郵件的 `mail` 物件相關資訊。其中包含 `mail` 物件相關資訊的 JSON 物件有下列欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  timestamp  |  原始訊息傳送的時間 (以 ISO8601 格式顯示)。  | 
|  messageId  |  SES 指派給訊息的唯一 ID。當您傳送訊息時，SES 會傳回此值給您。  此訊息 ID 是由 SES 指派。您可以在 `mail` 物件的 `headers` 欄位中找到原始電子郵件的訊息 ID。   | 
|  source  |  傳送出原始訊息的電子郵件地址 (信封的「寄件人」地址)。  | 
|  sourceArn  |  用以傳送電子郵件之身分的 Amazon Resource Name (ARN)。在傳送授權的情況下，`sourceArn` 為身分持有者授權給委託寄件者之身分的 ARN，用以傳送電子郵件。如需關於傳送授權的詳細資訊，請參閱 [電子郵件身分驗證方法使用傳送授權](sending-authorization.md)。  | 
|  sourceIp  |  用戶端對 SES 執行電子郵件傳送請求的原始公有 IP 地址。  | 
|  sendingAccountId  |  用來傳送電子郵件的帳戶 AWS 帳戶 ID。在傳送授權的情況下，`sendingAccountId` 為委託寄件者的帳戶 ID。  | 
|  callerIdentity  |  傳送電子郵件的 SES 使用者的 IAM 身分。  | 
|  destination  |  原始郵件收件人的電子郵件地址清單。  | 
|  headersTruncated  |  只有在您設定通知設定，使其包含原始電子郵件的標頭時，此物件才會存在。 指出通知中的標頭是否截斷。當原始訊息的標頭大小為 10 KB 或更大時，SES 會截斷通知中的標頭。可能值為 `true` 和 `false`。  | 
|  headers  |  只有在您設定通知設定，使其包含原始電子郵件的標頭時，此物件才會存在。 電子郵件原始標題的清單。清單中的每項標題都有 `name` 欄位與 `value` 欄位。  `headers` 物件內的任何訊息 ID 都是來自您傳遞給 SES 的原始訊息。SES 隨後指派給訊息的訊息 ID 位於 `mail` 物件的 `messageId` 欄位中。   | 
|  commonHeaders  |  只有在您設定通知設定，使其包含原始電子郵件的標頭時，此物件才會存在。 包含原始電子郵件常見電子郵件標頭的相關資訊，包括寄件人、收件人及主旨欄位。在此物件中，每個標頭都是一個鍵。寄件人和收件人欄位都會以可包含多個值的陣列呈現。  針對事件，`commonHeaders` 欄位內的任何訊息 ID，就是 Amazon SES 後續指派給郵件物件的 `messageId` 欄位中之訊息的訊息 ID。通知會包含原始電子郵件的訊息 ID。   | 

以下為包含原始電子郵件標題的 `mail` 物件範例。未將此通知類型設定為包含原始電子郵件標題時，`mail` 物件不會包含 `headersTruncated`、`headers` 與 `commonHeaders` 欄位。

```
{
   "timestamp":"2018-10-08T14:05:45 +0000",
   "messageId":"000001378603177f-7a5433e7-8edb-42ae-af10-f0181f34d6ee-000000",
   "source":"sender@example.com",
   "sourceArn": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
   "sourceIp": "127.0.3.0",
   "sendingAccountId":"123456789012",
   "destination":[
      "recipient@example.com"
   ],
   "headersTruncated":false,
   "headers":[ 
      { 
         "name":"From",
         "value":"\"Sender Name\" <sender@example.com>"
      },
      { 
         "name":"To",
         "value":"\"Recipient Name\" <recipient@example.com>"
      },
      { 
         "name":"Message-ID",
         "value":"custom-message-ID"
      },
      { 
         "name":"Subject",
         "value":"Hello"
      },
      { 
         "name":"Content-Type",
         "value":"text/plain; charset=\"UTF-8\""
      },
      { 
         "name":"Content-Transfer-Encoding",
         "value":"base64"
      },
      { 
         "name":"Date",
         "value":"Mon, 08 Oct 2018 14:05:45 +0000"
      }
   ],
   "commonHeaders":{ 
      "from":[ 
         "Sender Name <sender@example.com>"
      ],
      "date":"Mon, 08 Oct 2018 14:05:45 +0000",
      "to":[ 
         "Recipient Name <recipient@example.com>"
      ],
      "messageId":" custom-message-ID",
      "subject":"Message sent using SES"
   }
}
```

## 退信物件
<a name="bounce-object"></a>

JSON 物件，其中包含具有以下欄位的退信相關資訊。


| 欄位名稱 | Description | 
| --- | --- | 
|  bounceType  |  退信的類型，由 SES 決定。如需詳細資訊，請參閱[退信類型](#bounce-types)。  | 
|  bounceSubType  |  退信的子類型，由 SES 決定。如需詳細資訊，請參閱[退信類型](#bounce-types)。  | 
|  bouncedRecipients  |  其中包含遭退信的原始郵件收件人之相關資訊的清單。如需詳細資訊，請參閱[退信的收件人](#bounced-recipients)。  | 
|  timestamp  |  退信傳送的日期與時間 (以 ISO8601 格式顯示)。請注意，這是 ISP 傳送通知的時間，而不是 SES 收到通知的時間。  | 
|  feedbackId  |  退信的唯一 ID。  | 

如果 SES 能夠聯絡遠端訊息傳輸授權機構 (MTA)，則也會出現下列欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  remoteMtaIp  |  SES 嘗試傳送電子郵件的 MTA IP 地址。  | 

若退信有連接遞送狀態通知 (DSN)，則也會顯示以下欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  reportingMTA  |  來自 DSN 的 `Reporting-MTA` 欄位數值。這是嘗試執行傳遞、轉傳或閘道操作的 MTA 值，如 DSN 中所述。  | 

下列為 `bounce` 物件的範例。

```
{
   "bounceType":"Permanent",
   "bounceSubType": "General",
   "bouncedRecipients":[
      {
         "status":"5.0.0",
         "action":"failed",
         "diagnosticCode":"smtp; 550 user unknown",
         "emailAddress":"recipient1@example.com"
      },
      {
         "status":"4.0.0",
         "action":"delayed",
         "emailAddress":"recipient2@example.com"
      }
   ],
   "reportingMTA": "example.com",
   "timestamp":"2012-05-25T14:59:38.605Z",
   "feedbackId":"000001378603176d-5a4b5ad9-6f30-4198-a8c3-b1eb0c270a1d-000000",
   "remoteMtaIp":"127.0.2.0"
}
```

### 退信的收件人
<a name="bounced-recipients"></a>

退信通知可能與單一收件人或多個收件人相關。`bouncedRecipients` 欄位包含物件清單 (每個與退信通知相關的收件人各一個)，並且一律會包含以下欄位。


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

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


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

以下可能會在 `bouncedRecipients` 清單中的物件範例。

```
{
    "emailAddress": "recipient@example.com",
    "action": "failed",
    "status": "5.0.0",
    "diagnosticCode": "X-Postfix; unknown user"
}
```

### 退信類型
<a name="bounce-types"></a>

退信物件包含退信類型 `Undetermined`、 `Permanent`*（硬）* 或 `Transient`*（軟）*。`Permanent` *（硬）* 和 `Transient`*（軟）* 退信類型也可以包含多種退信子類型之一。

當您收到退信類型為 `Transient`*（軟體）* 的退信通知時，如果導致退信的問題已解決，您未來可能會傳送電子郵件給該收件人。

當您收到退信類型為 `Permanent`*（硬）* 的退信通知時，您不太可能能夠在未來傳送電子郵件給該收件人。因此，建議您立即從電子郵件清單中移除造成此種退信的收件人地址。

**注意**  
發生*軟退信 *（與暫時問題相關的退信，例如收件人的收件匣已滿） 時，SES 會嘗試在一段時間內重新傳送電子郵件。在該期間結束時，如果 SES 仍然無法傳送電子郵件，則會停止嘗試。  
SES 提供硬退信的通知，以及停止嘗試傳遞的軟退信通知。若您希望每次出現軟退信時都收到通知，請[啟用事件發佈](monitor-sending-using-event-publishing-setup.md)，並將之設定為在傳送延遲事件出現時傳送通知。


| bounceType | bounceSubType | Description | 
| --- | --- | --- | 
|  Undetermined  |  Undetermined  |  收件人的電子郵件提供者傳送退信訊息。退信訊息未包含足夠的 SES 資訊，無法判斷退信的原因。傳送到造成退信電子郵件傳回路徑標頭中地址的退信電子郵件，可能包含造成電子郵件退信問題的額外資訊。  | 
|  Permanent  |  General  |  收件人的電子郵件提供者傳送了硬退信訊息。  當您收到這類退信通知時，建議您立即從電子郵件清單中移除收件人的電子郵件地址。傳送訊息到產生硬退信的地址，可能會對您做為寄件者的評價產生負面影響。若您繼續傳送電子郵件到產生硬退信的地址，我們可能會暫停您傳送其他電子郵件的能力。請參閱 [使用 Amazon SES 帳戶層次禁止名單](sending-email-suppression-list.md)。   | 
|  Permanent  |  NoEmail  |  無法從退信訊息中擷取收件人電子郵件地址。  | 
|  Permanent  |  Suppressed  |  收件人的電子郵件地址位於 SES 禁止名單中，因為它最近有產生硬退信的歷史記錄。若要複寫全域禁止名單，請參閱 [使用 Amazon SES 帳戶層次禁止名單](sending-email-suppression-list.md)。  | 
|  Permanent  |  OnAccountSuppressionList  | SES 已禁止傳送到此地址，因為它位於[帳戶層級禁止名單](sending-email-suppression-list.md)中。這不會計入您的退信率指標。  | 
|  Permanent  |  UnsubscribedRecipient  | 當收件人聯絡人取消訂閱主題，並使用[清單管理選項](sending-email-list-management.md#configuring-list-management-list-contacts)將郵件傳送給他們時，就會發生此退信類型。SES 遵守聯絡偏好設定，不會嘗試傳遞。此外，由於未嘗試交付，因此此退信不會影響寄件者評價，而且收件人聯絡人也不會因為退信而新增至禁止名單。  建議您訂閱UnsubscribedRecipient事件，以避免繼續傳送至取消訂閱的收件人。考慮 [使用清單管理功能](sending-email-list-management.md)。清單管理應該是訂閱者清單的事實來源。從 SES 強制執行的角度來看，如果您繼續傳送給隱藏或取消訂閱的收件人，您將享有不遵守電子郵件傳送最佳實務的評價。   | 
|  Transient  |  General  |  收件人的電子郵件提供者傳送了一般退信訊息。若造成訊息退信的問題解決，您可能可以在未來傳送訊息到相同的收件人。  若您傳送電子郵件到具有作用中自動回應規則 (例如「不在辦公室」訊息) 的收件人，您便可能會收到這類通知。即使回應的通知類型為 `Bounce`，SES 也不會在計算您帳戶的退信率時計算自動回應。   | 
|  Transient  |  MailboxFull  |  收件人的電子郵件提供者傳送了退信訊息，因為收件人的收件匣已滿。信箱釋出空間後，您便可能可以在未來傳送給相同的收件人。  | 
|  Transient  |  MessageTooLarge  |  收件人的電子郵件提供者傳送了退信訊息，因為您傳送的訊息過大。若您減少訊息的大小，您便可能可以傳送訊息給相同的收件人。  | 
|  Transient  |  ContentRejected  |  收件人的電子郵件提供者傳送了退信訊息，因為您傳送的訊息包含提供者不允許的內容。若您變更訊息的內容，您便可能可以傳送訊息給相同的收件人。  | 
|  Transient  |  AttachmentRejected  |  收件人的電子郵件提供者傳送了退信訊息，因為訊息包含無法接受的附件。例如，有些電子郵件提供者可能會拒絕特定檔案類型的附件，或是包含非常大型附件的訊息。若您移除或變更附件的內容，您便可能可以傳送訊息給相同的收件人。  | 

## 投訴物件
<a name="complaint-object"></a>

其中包含投訴相關資訊的 JSON 物件有下列欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  complainedRecipients  |  清單中包含可能曾因某些原因導致投訴的收件人相關資訊。如需詳細資訊，請參閱[提出投訴的收件人](#complained-recipients)。  | 
|  timestamp  |  ISP 傳送投訴通知的日期和時間，格式為 ISO 8601 格式。此欄位中的日期和時間可能與 SES 收到通知的日期和時間不同。  | 
|  feedbackId  |  與投訴相關聯的唯一 ID。  | 
|  complaintSubType  | `complaintSubType` 欄位的值可以是 null 或 `OnAccountSuppressionList`。如果值為 `OnAccountSuppressionList`，SES 接受訊息，但並未嘗試傳送，因為它位於[帳戶層級禁止名單](sending-email-suppression-list.md)中。 | 

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


| 欄位名稱 | Description | 
| --- | --- | 
|  userAgent  |  來自意見回饋報告的 `User-Agent` 欄位數值。這表示產生報告的系統名稱和版本。  | 
|  complaintFeedbackType  |  自 ISP 傳送的意見回饋報告中的 `Feedback-Type` 欄位數值。這包含意見回饋的類型。  | 
|  arrivalDate  |  意見回饋報告中的 `Arrival-Date` or `Received-Date` 欄位值 (以 ISO8601 格式顯示)。此欄位可能不會在報告中顯示 (因而也不會在 JSON 中顯示)。  | 

下列為 `complaint` 物件的範例。

```
{
   "userAgent":"ExampleCorp Feedback Loop (V0.01)",
   "complainedRecipients":[
      {
         "emailAddress":"recipient1@example.com"
      }
   ],
   "complaintFeedbackType":"abuse",
   "arrivalDate":"2009-12-03T04:24:21.000-05:00",
   "timestamp":"2012-05-25T14:59:38.623Z",
   "feedbackId":"000001378603177f-18c07c78-fa81-4a58-9dd1-fedc3cb8f49a-000000"
}
```

### 提出投訴的收件人
<a name="complained-recipients"></a>

`complainedRecipients` 欄位包含可能曾提出投訴的收件人清單。您應該使用此資訊來判斷哪些收件人提交了投訴，然後立即將該收件人從您的郵寄清單中移除。

**重要**  
大多數的 ISP 都會從抱怨通知中移除提交投訴的收件人電子郵件地址。因此，此清單會根據原始訊息收件人和向我們提出投訴的 ISP，包含可能曾傳送投訴的收件人相關資訊。SES 會對原始訊息執行查詢，以判斷此收件人清單。

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


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

下列為提出投訴的收件人物件範例。

```
{ "emailAddress": "recipient1@example.com" }
```

**注意**  
由於這種行為，若您限制傳送為每個收件人單一訊息 (而非在密件副本行中加入 30 個不同電子郵件地址來傳送一個訊息)，便可以更確信地知道哪些電子郵件地址曾對您的訊息提出投訴。

#### 投訴類型
<a name="complaint-types"></a>

您可能看到 `complaintFeedbackType` 欄位中由回報 ISP 根據 [Internet Assigned Numbers Authority website](http://www.iana.org/assignments/marf-parameters/marf-parameters.xml#marf-parameters-2) 指派的下列投訴類型：
+ `abuse` - 指出未經要求的電子郵件或其他形式的電子郵件濫用。
+ `auth-failure` - 電子郵件身分驗證失敗報告。
+ `fraud` - 表示某些形式的詐騙或網路釣魚活動。
+ `not-spam` - 表示提供報告的實體不會將訊息視為垃圾郵件。這可能會用於修正內含不正確標籤或者被歸類為垃圾郵件的訊息。
+ `other` - 表示不符合其他註冊類型的任何其他意見回饋。
+ `virus` - 回報在原始訊息中找到病毒。

## 交付物件
<a name="delivery-object"></a>

包含遞送相關資訊的 JSON 物件一率具有下列欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  timestamp  |  SES 將電子郵件傳送到收件人郵件伺服器的時間 (ISO8601 格式）。  | 
|  processingTimeMillis  |  SES 接受寄件者對傳送訊息至收件人郵件伺服器的請求之間的時間，以毫秒為單位。  | 
|  recipients  |  傳遞通知適用的電子郵件目標收件人清單。  | 
|  smtpResponse  |  接受來自 SES 之電子郵件的遠端 ISP 的 SMTP 回應訊息。此訊息會隨著電子郵件、接收電子郵件伺服器以及接收 ISP 而有所不同。  | 
|  reportingMTA  |  傳送郵件的 SES 郵件伺服器的主機名稱。  | 
|  remoteMtaIp  |  SES 傳送電子郵件的 MTA IP 地址。  | 

下列為 `delivery` 物件的範例。

```
{
   "timestamp":"2014-05-28T22:41:01.184Z",
   "processingTimeMillis":546,
   "recipients":["success@simulator.amazonses.com"],
   "smtpResponse":"250 ok:  Message 64111812 accepted",
   "reportingMTA":"a8-70.smtp-out.amazonses.com",
   "remoteMtaIp":"127.0.2.0"
}
```

# Amazon SES 的 Amazon SNS 通知範例
<a name="notification-examples"></a>

以下章節提供三種類型的通知範例：
+ 如需退信通知範例，請參閱 [Amazon SNS 退信通知範例](#notification-examples-bounce)。
+ 如需投訴通知範例，請參閱 [Amazon SNS 投訴通知範例](#notification-examples-complaint)。
+ 如需傳遞通知範例，請參閱 [Amazon SNS 遞送通知範例](#notification-examples-delivery)。

## Amazon SNS 退信通知範例
<a name="notification-examples-bounce"></a>

本節包含退信通知中顯示或不顯示傳遞狀態通知 (DSN) 的兩種範例，DSN 由送出意見回饋的電子郵件接收工具所提供。

### 顯示 DSN 的退信通知
<a name="notification-examples-bounce-with-dsn"></a>

以下為顯示 DSN 與原始電子郵件標題的退信通知範例。未將退信通知設定為包含原始電子郵件標題時，通知內的 `mail` 物件不會包含 `headersTruncated`、`headers` 與 `commonHeaders` 欄位。

```
   {
       "notificationType":"Bounce",
       "bounce":{
          "bounceType":"Permanent",
          "reportingMTA":"dns; email.example.com",
          "bouncedRecipients":[
             {
                "emailAddress":"jane@example.com",
                "status":"5.1.1",
                "action":"failed",
                "diagnosticCode":"smtp; 550 5.1.1 <jane@example.com>... User"
             }
          ],
          "bounceSubType":"General",
          "timestamp":"2016-01-27T14:59:38.237Z",
          "feedbackId":"00000138111222aa-33322211-cccc-cccc-cccc-ddddaaaa068a-000000",
          "remoteMtaIp":"127.0.2.0"
       },
       "mail":{
          "timestamp":"2016-01-27T14:59:38.237Z",
          "source":"john@example.com",
          "sourceArn": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
          "sourceIp": "127.0.3.0",
          "sendingAccountId":"123456789012",
          "callerIdentity": "IAM_user_or_role_name",
          "messageId":"00000138111222aa-33322211-cccc-cccc-cccc-ddddaaaa0680-000000",
          "destination":[
            "jane@example.com",
            "mary@example.com",
            "richard@example.com"],
          "headersTruncated":false,
          "headers":[ 
           { 
             "name":"From",
             "value":"\"John Doe\" <john@example.com>"
           },
           { 
             "name":"To",
             "value":"\"Jane Doe\" <jane@example.com>, \"Mary Doe\" <mary@example.com>, \"Richard Doe\" <richard@example.com>"
           },
           { 
             "name":"Message-ID",
             "value":"custom-message-ID"
           },
           { 
             "name":"Subject",
             "value":"Hello"
           },
           { 
             "name":"Content-Type",
             "value":"text/plain; charset=\"UTF-8\""
           },
           { 
             "name":"Content-Transfer-Encoding",
             "value":"base64"
           },
           { 
             "name":"Date",
             "value":"Wed, 27 Jan 2016 14:05:45 +0000"
           }
          ],
          "commonHeaders":{ 
             "from":[ 
                "John Doe <john@example.com>"
             ],
             "date":"Wed, 27 Jan 2016 14:05:45 +0000",
             "to":[ 
                "Jane Doe <jane@example.com>, Mary Doe <mary@example.com>, Richard Doe <richard@example.com>"
             ],
             "messageId":"custom-message-ID",
             "subject":"Hello"
           }
        }
    }
```

### 不顯示 DSN 的退信通知
<a name="notification-examples-bounce-no-dsn"></a>

以下為顯示原始電子郵件標題但不包含 DSN 的退信通知範例。未將退信通知設定為包含原始電子郵件標題時，通知內的 `mail` 物件不會包含 `headersTruncated`、`headers` 與 `commonHeaders` 欄位。

```
   {
      "notificationType":"Bounce",
      "bounce":{
         "bounceType":"Permanent",
         "bounceSubType": "General",
         "bouncedRecipients":[
            {
               "emailAddress":"jane@example.com"
            },
            {
               "emailAddress":"richard@example.com"
            }
         ],
         "timestamp":"2016-01-27T14:59:38.237Z",
         "feedbackId":"00000137860315fd-869464a4-8680-4114-98d3-716fe35851f9-000000",
         "remoteMtaIp":"127.0.2.0"
      },
      "mail":{
         "timestamp":"2016-01-27T14:59:38.237Z",
         "messageId":"00000137860315fd-34208509-5b74-41f3-95c5-22c1edc3c924-000000",
         "source":"john@example.com",
         "sourceArn": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
         "sourceIp": "127.0.3.0",
         "sendingAccountId":"123456789012",
         "callerIdentity": "IAM_user_or_role_name",
         "destination":[
            "jane@example.com",
            "mary@example.com",
            "richard@example.com"
         ],
        "headersTruncated":false,
        "headers":[ 
         { 
            "name":"From",
            "value":"\"John Doe\" <john@example.com>"
         },
         { 
            "name":"To",
            "value":"\"Jane Doe\" <jane@example.com>, \"Mary Doe\" <mary@example.com>, \"Richard Doe\" <richard@example.com>"
         },
         { 
            "name":"Message-ID",
            "value":"custom-message-ID"
         },
         { 
            "name":"Subject",
            "value":"Hello"
         },
         { 
            "name":"Content-Type",
            "value":"text/plain; charset=\"UTF-8\""
         },
         { 
            "name":"Content-Transfer-Encoding",
            "value":"base64"
         },
         { 
            "name":"Date",
            "value":"Wed, 27 Jan 2016 14:05:45 +0000"
          }
         ],
         "commonHeaders":{ 
           "from":[ 
              "John Doe <john@example.com>"
           ],
           "date":"Wed, 27 Jan 2016 14:05:45 +0000",
           "to":[ 
              "Jane Doe <jane@example.com>, Mary Doe <mary@example.com>, Richard Doe <richard@example.com>"
           ],
           "messageId":"custom-message-ID",
           "subject":"Hello"
         }
      }
  }
```

## Amazon SNS 投訴通知範例
<a name="notification-examples-complaint"></a>

本節包含投訴通知中包含或不包含意見回饋報告的兩種範例，意見回饋報告由送出意見回饋的電子郵件接收工具所提供。

### 含有意見回饋報告的投訴通知
<a name="notification-examples-complaint-with-feedback"></a>

以下為含有意見回饋報告與原始電子郵件標題的投訴通知範例。未將投訴通知設定為包含原始電子郵件標題時，通知內的 `mail` 物件不會包含 `headersTruncated`、`headers` 與 `commonHeaders` 欄位。

```
   {
      "notificationType":"Complaint",
      "complaint":{
         "userAgent":"AnyCompany Feedback Loop (V0.01)",
         "complainedRecipients":[
            {
               "emailAddress":"richard@example.com"
            }
         ],
         "complaintFeedbackType":"abuse",
         "arrivalDate":"2016-01-27T14:59:38.237Z",
         "timestamp":"2016-01-27T14:59:38.237Z",
         "feedbackId":"000001378603177f-18c07c78-fa81-4a58-9dd1-fedc3cb8f49a-000000"
      },
      "mail":{
         "timestamp":"2016-01-27T14:59:38.237Z",
         "messageId":"000001378603177f-7a5433e7-8edb-42ae-af10-f0181f34d6ee-000000",
         "source":"john@example.com",
         "sourceArn": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
         "sourceIp": "127.0.3.0",
         "sendingAccountId":"123456789012",
         "callerIdentity": "IAM_user_or_role_name",
         "destination":[
            "jane@example.com",
            "mary@example.com",
            "richard@example.com"
         ], 
          "headersTruncated":false,
          "headers":[ 
           { 
             "name":"From",
             "value":"\"John Doe\" <john@example.com>"
           },
           { 
             "name":"To",
             "value":"\"Jane Doe\" <jane@example.com>, \"Mary Doe\" <mary@example.com>, \"Richard Doe\" <richard@example.com>"
           },
           { 
             "name":"Message-ID",
             "value":"custom-message-ID"
           },
           { 
             "name":"Subject",
             "value":"Hello"
           },
           { 
             "name":"Content-Type",
             "value":"text/plain; charset=\"UTF-8\""
           },
           { 
             "name":"Content-Transfer-Encoding",
             "value":"base64"
           },
           { 
             "name":"Date",
             "value":"Wed, 27 Jan 2016 14:05:45 +0000"
           }
         ],
         "commonHeaders":{ 
           "from":[ 
              "John Doe <john@example.com>"
           ],
           "date":"Wed, 27 Jan 2016 14:05:45 +0000",
           "to":[ 
              "Jane Doe <jane@example.com>, Mary Doe <mary@example.com>, Richard Doe <richard@example.com>"
           ],
           "messageId":"custom-message-ID",
           "subject":"Hello"
         }
      }
   }
```

### 不含有意見回饋報告的投訴通知
<a name="notification-examples-complaint-no-feedback"></a>

以下為顯示原始電子郵件標題但不包含意見回饋報告的投訴通知範例。未將投訴通知設定為包含原始電子郵件標題時，通知內的 `mail` 物件不會包含 `headersTruncated`、`headers` 與 `commonHeaders` 欄位。

```
   {
      "notificationType":"Complaint",
      "complaint":{
         "complainedRecipients":[
            {
               "emailAddress":"richard@example.com"
            }
         ],
         "timestamp":"2016-01-27T14:59:38.237Z",
         "feedbackId":"0000013786031775-fea503bc-7497-49e1-881b-a0379bb037d3-000000"
      },
      "mail":{
         "timestamp":"2016-01-27T14:59:38.237Z",
         "messageId":"0000013786031775-163e3910-53eb-4c8e-a04a-f29debf88a84-000000",
         "source":"john@example.com",
         "sourceArn": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
         "sourceIp": "127.0.3.0",
         "sendingAccountId":"123456789012",
         "callerIdentity": "IAM_user_or_role_name",
         "destination":[
            "jane@example.com",
            "mary@example.com",
            "richard@example.com"
         ],
         "headersTruncated":false,
         "headers":[ 
          { 
            "name":"From",
            "value":"\"John Doe\" <john@example.com>"
          },
          { 
            "name":"To",
            "value":"\"Jane Doe\" <jane@example.com>, \"Mary Doe\" <mary@example.com>, \"Richard Doe\" <richard@example.com>"
          },
          { 
            "name":"Message-ID",
            "value":"custom-message-ID"
          },
          { 
            "name":"Subject",
            "value":"Hello"
          },
          { 
            "name":"Content-Type",
            "value":"text/plain; charset=\"UTF-8\""
          },
          { 
            "name":"Content-Transfer-Encoding",
            "value":"base64"
          },
          { 
            "name":"Date",
            "value":"Wed, 27 Jan 2016 14:05:45 +0000"
          }
          ],
          "commonHeaders":{ 
             "from":[ 
                "John Doe <john@example.com>"
             ],
             "date":"Wed, 27 Jan 2016 14:05:45 +0000",
             "to":[ 
                "Jane Doe <jane@example.com>, Mary Doe <mary@example.com>, Richard Doe <richard@example.com>"
             ],
             "messageId":"custom-message-ID",
             "subject":"Hello"
          }
       }
   }
```

## Amazon SNS 遞送通知範例
<a name="notification-examples-delivery"></a>

以下為包含原始電子郵件標題的傳遞通知範例。未將傳遞通知設定為包含原始電子郵件標題時，通知內的 `mail` 物件不會包含 `headersTruncated`、`headers` 與 `commonHeaders` 欄位。

```
   {
      "notificationType":"Delivery",
      "mail":{
         "timestamp":"2016-01-27T14:59:38.237Z",
         "messageId":"0000014644fe5ef6-9a483358-9170-4cb4-a269-f5dcdf415321-000000",
         "source":"john@example.com",
         "sourceArn": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
         "sourceIp": "127.0.3.0",
         "sendingAccountId":"123456789012",
         "callerIdentity": "IAM_user_or_role_name",
         "destination":[
            "jane@example.com"
         ], 
          "headersTruncated":false,
          "headers":[ 
           { 
              "name":"From",
              "value":"\"John Doe\" <john@example.com>"
           },
           { 
              "name":"To",
              "value":"\"Jane Doe\" <jane@example.com>"
           },
           { 
              "name":"Message-ID",
              "value":"custom-message-ID"
           },
           { 
              "name":"Subject",
              "value":"Hello"
           },
           { 
              "name":"Content-Type",
              "value":"text/plain; charset=\"UTF-8\""
           },
           { 
              "name":"Content-Transfer-Encoding",
              "value":"base64"
           },
           { 
              "name":"Date",
              "value":"Wed, 27 Jan 2016 14:58:45 +0000"
           }
          ],
          "commonHeaders":{ 
            "from":[ 
               "John Doe <john@example.com>"
            ],
            "date":"Wed, 27 Jan 2016 14:58:45 +0000",
            "to":[ 
               "Jane Doe <jane@example.com>"
            ],
            "messageId":"custom-message-ID",
            "subject":"Hello"
          }
       },
      "delivery":{
         "timestamp":"2016-01-27T14:59:38.237Z",
         "recipients":["jane@example.com"],
         "processingTimeMillis":546,     
         "reportingMTA":"a8-70.smtp-out.amazonses.com",
         "smtpResponse":"250 ok:  Message 64111812 accepted",
         "remoteMtaIp":"127.0.2.0"
      } 
   }
```