設定 Amazon SES 的 Amazon SNS 通知 - Amazon Simple Email Service

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

設定 Amazon SES 的 Amazon SNS 通知

Amazon SES 可透過 Amazon Simple Notification Service (Amazon SNS) 來通知您退信、投訴與遞送訊息。

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

先決條件

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

  1. 在 Amazon SNS 中建立一個主題。如需詳細資訊,請參閱 Amazon Simple Notification Service 開發人員指南中的建立主題

    重要

    使用 Amazon SNS 建立主題時,針對 Type (類型),請只選擇 Standard (標準)。(SES 不支援 FIFO 類型的主題。)

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

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

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

    在上述範例政策中進行下列變更:

    • topic_region 取代為您建立 SNS 主題的 AWS 區域。

    • 111122223333 取代為您的 AWS 帳戶 ID。

    • topic_name 取代為您的 SNS 主題名稱。

    • identity_name 取代為您訂閱 SNS 主題的已驗證身分 (電子郵件地址或網域)。

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

    如需詳細資訊,請參閱 Amazon Simple Notification Service 開發人員指南中的入門

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

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

使用 Amazon SES 主控台設定通知

使用 Amazon SES 主控台來設定通知
  1. 開啟 Amazon SES 主控台,網址為 https://console.aws.amazon.com/ses/

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

  3. Identities (身分) 容器中,選取您要接收意見回饋通知的已驗證身分 (於從此身分傳送的郵件產生退信、投訴或遞送結果時收到通知)。

    重要

    驗證網域通知設定適用於所有由位於該網域中之電子郵件地址所寄出的郵件,除了已驗證的電子郵件地址。

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

  5. 展開您要接收通知的每種意見回饋類型的 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 主題。 若要進一步了解委派傳送,請參閱 傳送授權概觀。)

    重要

    用於退信、投訴和遞送通知的 Amazon SNS 主題,必須位於與您使用 Amazon SES 的相同 AWS 區域 內。

    此外,您必須為一或多個端點訂閱主題才能接收通知。例如,如果您想要將通知傳送到電子郵件地址,則必須訂閱將電子郵件端點訂閱至主題。如需詳細資訊,請參閱 Amazon Simple Notification Service 開發人員指南中的入門

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

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

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

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

您將需針對退信、投訴和遞送通知支付標準 Amazon SNS 費率。如需詳細資訊,請參閱 Amazon SNS 定價頁面

注意

如果因為主題已刪除或您的 AWS 帳戶 不再有發佈許可,造成無法發佈 Amazon SNS 主題,Amazon SES 會移除該主題的組態,如果該主題已設定為退信或投訴(而不是交付-對於交付通知,SES 不會刪除 SNS 主題組態設定)。此外,Amazon SES 會重新啟用身分的退信和投訴電子郵件通知,而且您會透過電子郵件收到變更通知。如果將多個身分設定為使用主題,則每個身分發佈到主題失敗時,都會變更每個身分的主題組態。

使用 Amazon SES API 設定通知

您也可以使用 Amazon SES API 來設定退信、投訴和遞送通知。使用以下操作來設定通知:

您可以使用這些 API 動作來為通知撰寫自訂的前端應用程式。如需關於通知相關 API 動作的完整說明,請參閱 Amazon Simple Email Service API 參考資料

意見回饋通知疑難排解

未接收通知

如果您沒有收到通知,請確定您已訂閱端點至透過傳送通知的主題。當您訂閱電子郵件端點至主題時,您會收到一封電子郵件,要求您確認訂閱。您必須先確認訂閱,才能開始接收電子郵件通知。如需詳細資訊,請參閱 Amazon Simple Notification Service 開發人員指南中的入門

選擇主題時出現 InvalidParameterValue 錯誤

如果您收到錯誤,指出發生 InvalidParameterValue 錯誤,請查看 Amazon SNS 主題確認是否已使用 AWS KMS 加密。如果是,則您必須修改 AWS KMS 金鑰的政策。請參閱 先決條件 獲得更多範例政策。