AWS SNS退回通知未发送

问题描述 投票:0回答:1

我有一个托管在AWS上的Rails 4.2应用程序,该应用程序使用SES来发送电子邮件。我将SNS设置为在电子邮件退回时将通知发布到应用程序。如果我通过SES控制台发送测试电子邮件,则与SNS订阅关联的终结点会被退回通知完全按预期方式被AWS击中。从应用程序本身发送的电子邮件退回时,尽管在SES控制台中显示的电子邮件统计中似乎存在相应的退回,但未命中该终结点。

[如果从应用程序发送的电子邮件带有Return-Path,则与返回路径关联的电子邮件的确会从SES邮寄程序守护程序收到“传递状态通知(失败)”消息(尽管该电子邮件确实是垃圾邮件)。我还检查了Apache access_logerror_log,并且仅在通过SES控制台发送电子邮件时看到退回通知端点命中。

应用内的电子邮件是通过ActionMailer发送的,其delivery_strategy:aws_sdk(由aws-sdk-rails gem提供)。我也尝试过使用:smtpemail-smtp.us-east-1.amazonaws.com和SES凭证的传递策略-两种策略之间的唯一区别是:smtp策略无法遵循Return-Path。 “发件人”地址中使用的域和电子邮件均已通过AWS进行了验证,并且DKIM已启用,验证并似乎正在运行。域的退回通知SNS主题是正确的(并且该主题的订阅已确认)。

我已经测试过将电子邮件发送到具有不存在域的地址,具有真实域和[email protected]的不存在地址的地址。使用该应用程序进行的所有测试均不会将任何内容发布到通知端点,而使用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文档中进行了大量搜索,但没有发现任何可改变此行为的内容。有关如何获得由应用发送时发送退回通知的任何提示,将不胜感激。

ruby-on-rails amazon-web-services email amazon-sns amazon-ses
1个回答
0
投票
我遇到了您所描述的相同问题,这是因为我只在域名上配置了通知,而没有在电子邮件地址上配置。
© www.soinside.com 2019 - 2024. All rights reserved.