繁体   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