簡體   English   中英

未發送 AWS SNS 退回通知

[英]AWS SNS bounce notifications not being delivered

我有一個托管在 AWS 上的 Rails 4.2 應用程序,它使用 SES 發送電子郵件。 我已將 SNS 設置為在電子郵件退回時向應用程序發送通知。 如果我通過 SES 控制台發送測試電子郵件,則與 SNS 訂閱關聯的端點會完全按照預期的退回通知被 AWS 命中。 當從應用程序本身發送的電子郵件被退回時,不會命中端點,盡管 SES 控制台中顯示的電子郵件統計信息中似乎有相應的退回。

如果使用Return-Path從應用程序發送電子郵件,則與Return-Path關聯的電子郵件確實會收到來自 SES 郵件程序守護程序的“傳遞狀態通知(失敗)”消息(盡管該電子郵件確實會進入垃圾郵件)。 我還檢查了 Apache access_logerror_log ,只有在通過 SES 控制台發送電子郵件時才看到彈回通知端點命中。

應用程序中的電子郵件通過 ActionMailer 發送,其中delivery_strategy:aws_sdk (由aws-sdk-rails gem 提供)。 我還嘗試使用:smtp的交付策略與email-smtp.us-east-1.amazonaws.com和 SES 憑據——這兩種策略之間的唯一區別是:smtp策略未能遵循Return-Path “發件人”地址中使用的域和電子郵件均已通過 AWS 驗證,並且 DKIM 已啟用、已驗證且似乎正在運行。 該域的 Bounce Notifications SNS 主題是正確的(並且該主題的訂閱已被確認)。

我已經測試過將電子郵件發送到域不存在的地址、真實域的不存在地址和bounce@simulator.amazonses.com 使用應用程序進行的所有測試都不會將任何內容發布到通知端點,而使用 SES 控制台的所有測試都會導致預期的行為。 所有 Amazon 服務都使用相同的區域 (us-east-1),並且所有預計會在不退回的情況下傳送的電子郵件都會得到適當的傳送。

發送郵件的代碼本質上是這樣的:

class SomeMailer < ApplicationMailer
  def some_email
    ...
    mail(
      to: destination,
      from: sender,
      cc: cc_addresses,
      subject: some_subject,
      template_name: some_template,
      return_path: return_path_email
    )
  end
end

我已經嘗試刪除對正在命中的 SNS 端點沒有影響的return_path

我在這里和 AWS 文檔中做了很多搜索,但沒有發現任何改變這種行為的東西。 任何有關如何在應用程序發送時發送退回通知的提示將不勝感激。

如果您使用經過簡單郵件服務驗證的電子郵件地址發送電子郵件,請確保為該電子郵件地址配置了通知主題。 如果它只為您的域配置,那么它將無法工作。

我遇到了你描述的同樣問題,這是因為我只在我的域名上配置了通知,而不是電子郵件地址。

已經晚了,但肯定會幫助其他人,我遇到了同樣的問題,而不是意識到我在從我的網絡應用程序發送電子郵件時丟失了配置集標頭。 我是通過 SES 發送的測試郵件屏幕了解到這一點的,其中有一個配置集標頭。 Aws SES 發送測試電子郵件屏幕因此,通過添加此標題,您將開始接收通知。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM