我沒有收到來自 Amazon Simple Notification Service (Amazon SNS) 主題的電子郵件通知。
解決方案
確認您的電子郵件端點處於已確認狀態
**注意事項:**如果在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確定您是使用最新版本的 AWS CLI。
使用 AWS 管理主控台或 AWS CLI 來驗證電子郵件端點的狀態。
AWS 管理主控台
- 開啟 Amazon SNS 主控台。
- 在導覽窗格中,選擇「主題」,然後選擇您的主題。
- 在主題頁面的「訂閱」區段中,在「端點」資料欄中找到您的電子郵件端點。
- 在訂閱的「狀態」資料欄中,確認狀態為「已確認」。順利訂閱電子郵件端點時,狀態為已確認。
- 在 Amazon SNS 主控台中手動確認訂閱。如果您無法收到確認電子郵件,請完成下列區段中的步驟。
- 若要重新請求確認電子郵件,請選取您訂閱的端點,然後選擇「請求確認」。
AWS CLI
執行 list-subscriptions-by-topic AWS CLI 命令。
**注意事項:**如果「端點」資料欄中沒有電子郵件端點,則該端點已遭刪除。
檢查電子郵件地址是否可以接收來自外部聯絡人的電子郵件
若要檢查問題是否僅限於 Amazon SNS,請從外部供應商傳送測試電子郵件至您的目的地電子郵件地址。這有助於您評估允許來自外部來源的流量類型。組織內的信箱通常僅限於內部流量。
如果信箱正常運作且沒有問題,則請完成「檢查防火牆、垃圾郵件篩選器、封鎖程式或篩選政策」區段中的步驟。
檢查防火牆、垃圾郵件篩選器、封鎖程式或篩選政策
請完成下列疑難排解步驟:
- 洽詢電子郵件管理員,以查看 no-reply@sns.amazonaws.com 地址是否經過防火牆或垃圾郵件篩選器的篩選。
提示:最佳實務是將 no-reply@sns.amazonaws.com 地址新增至信箱允許清單。如需相關資訊,請參閱問題: 訂閱用戶是否需要特別設定其電子郵件設定以接收 Amazon SNS 的通知?,該項目位於 Amazon SNS 常見問題。
- 如果您的電子郵件仍遭篩選為垃圾郵件,請檢查是否有明確拒絕的信箱規則封鎖 SNS 主題電子郵件。您還可以檢查電子郵件是否會遞送至信箱中的特定資料夾。
- 若要防止個人取消 SNS 主題電子郵件的所有訂閱收件人,請設定取消訂閱的身分驗證。
**注意事項:**您必須擁有必要的許可才能取消訂閱電子郵件端點。您可以透過 Amazon SNS 主控台中經過身分驗證的使用者或使用 AWS CLI 確認訂閱。
檢查訂閱的篩選政策:
- 開啟 Amazon SNS 主控台。
- 在導覽窗格中,選擇「訂閱」。
- 在搜尋欄位中,輸入電子郵件端點訂閱的電子郵件地址或 SNS 主題,然後在結果中選擇您的訂閱。
- 針對您的電子郵件端點,選擇「訂閱篩選政策」索引標籤,然後在「訂閱篩選政策」區段中尋找訂閱的篩選政策。
**注意事項:**Amazon SNS 會在訊息傳送至端點時,將訊息屬性與篩選政策中的屬性進行比較。如果訊息屬性和篩選政策屬性不一致,則電子郵件端點將不會收到訊息。
確認您沒有使用預設的 AWS KMS key 設定
Amazon SNS 允許主題進行靜態加密。如果預設的 AWS Key Management Service (AWS KMS) 用於加密,則各項服務 (例如 Amazon CloudWatch) 不得將訊息發佈至 SNS 主題。Amazon SNS 的預設 AWS KMS key 金鑰政策不允許這些服務執行 kms:Decrypt 和 kms:GenerateDataKey 等 API 呼叫。因為此金鑰受 AWS 管理,您無法手動編輯該政策。
如果您要加密 Amazon SNS 主題,請使用客戶自管金鑰。客戶自管金鑰必須在金鑰政策的「陳述式」區段中包括下列許可:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "service.amazonaws.com"
},
"Action": [
"kms:GenerateDataKey*",
"kms:Decrypt"
],
"Resource": "*"
}
]
}
這些許可允許各項服務將訊息發佈至加密的 SNS 主題。