亚马逊SES电子邮件不再发送

我在使用Amazon SES发送电子邮件时遇到问题。 我有一个Amazon EC2实例。

它前几天工作,但我刚刚注意到上周所有的电子邮件现在失败。 我曾尝试使用Node和Amazon SES sdk进行发送,并从AWS内部发送testing电子邮件。 我在节点中有以下代码:

var aws = require('aws-sdk'); // load aws config aws.config.loadFromPath('email_config.json'); // load AWS SES var ses = new aws.SES({ apiVersion: '2010-12-01' }); ses.sendEmail({ Source: from, Destination: { ToAddresses: to }, Message: { Subject: { Data: 'Somebody registered' }, Body: { Html: { Data: body, } } } }, function(err, data) { console.log('email err is ', err, ' and data is ', data); }); 

日志的结果是:

 email err is null and data is { ResponseMetadata: { RequestId: 'ad28f526-0b15-11e6-ad87-1108d652684a' }, MessageId: '010101544ebc41b3-f7bd43dd-0505-4eb2-a056-219ce6180fc5-000000' } 

但是这封电子邮件并没有寄给我,于是我收到亚马逊的一封电子邮件,内容是:

 An error occurred while trying to deliver the mail to the following recipients: < my email address > 

这包含以下文本的附件:

 From: < my email address > To: < my email address > Subject: Somebody registered MIME-Version: 1.0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit Message-ID: <010101544ebc41b3-f7bd43dd-0505-4eb2-a056-219ce6180fc5-000000@us-west-2.amazonses.com> Date: Mon, 25 Apr 2016 18:44:01 +0000 X-SES-Outgoing: 2016.04.25-54.240.27.56 Feedback-ID: 1.us-west-2.GkIUmTTEDEIC5VBoooumwcKSnMDcLT8S4Zd3/deS/BU=:AmazonSES DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=gdwg2y3kokkkj5a55z2ilkup5wp5hhxx; d=amazonses.com; t=1461609841; h=From:To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID:Date:Feedback-ID; bh=fHqQiK/2DJ+B7zddmElFttCiWFnADDSNj5umLJQCPJs=; b=ZI/358zmcRHVBKTdA6qbQky5nj5z/YWw215KvkZ+oD73N0booHbl+jx+O05FdcKR irDjmyEDppGkp7rToZSTt/NHDeRrbERixT/ZCjGo/KOxvShovD7Z5mnDViRmkS5sTz5 qo0oO0NuRz1lGVPkT5ONHNhKhWs7ncC9id0ycm34= 

当我实际loginAWS并通过控制台发送testing邮件时,我也遇到了同样的问题。

我已经validation了发件人的电子邮件地址,并且已经批准了该地区的发送限制。

任何想法这可能是什么?

编辑

我只是注意到在我的AWS控制面板> SES主页>域名它说我的域名是“等待validation”。 这可以吗? 它说我需要添加一个名为xxx和值为yyy的TXT DNSlogging。 我已经在Register365上做了这个。 也许我做错了? Register365不提供TXTlogging的名称和值字段,只有“结果”字段。 所以我添加了一个TXTlogging,其结果字段为:xxx = yyy。 这是正确的方法吗? 这是几个星期前,但它仍然待核实….

编辑

我已经添加了一个TXTlogging到我的注册365控制面板,仍然我的域名无法validation。 logging如下所示:

在这里输入图像描述

亚马逊为我提供了以下TXTlogging来validation我的域名:

 TXT Name*: _amazonses.mydomain.com TXT Value: u1qHYT6/2KV9Kl1VLKsApXjwcPqVXKJ8KeXj50k= 

所以在注册365控制面板的“结果”字段中,我添加了logging的forms名称=值,即“_amazonses.mydomain.com = u1qHYT6 / 2KV9Kl1VLKsApXjwcPqVXKJ8KeXj50k =”

然后,我运行nslookup查找logging,但得到的消息:

 server can't find _amazonses.mydomain.com: NXDOMAIN 

我究竟做错了什么?

编辑

我现在已经将TXTlogging更改为:

在这里输入图像描述

但是3天后,我收到另外一封来自亚马逊的邮件,说他们没有validation域名。 我现在完全困惑,我一直试图validation它六个星期!

我的SES账户不在沙箱模式 – 我已经被批准通过SES发送电子邮件。 我还validation了我的发件人电子邮件地址。

还有其他的select吗? 亚马逊SES服务似乎绝对可怕。

另外当我运行:

 nslookup -type=TXT _amazonses.redmatterapp.com ns-478.awsdns-59.com 

我仍然看到:

 server can't find _amazonses.redmatterapp.com: NXDOMAIN 

当我运行:

 nslookup -type=TXT redmatterapp.com ns-478.awsdns-59.com 

我得到:

 Can't find redmatterapp.com: No answer 

为什么发生这种情况? 我的DNS是注册365

编辑

看起来像我使用nslookup的名称服务器是错误的。 当我运行nslookup时,我知道得到:

 _amazonses.redmatterapp.com text = "u1qN5cbTEDb/2EV9Bhd67YHT5jjqVXKJ8KeXj50k=" 

看起来不错 然而,仍然validation我的域名失败…

正如Michael所说,SQL Bot指出,你需要在左边有一个主机名(_amazonses),右边是值。 这将有助于validation域。

但是,还有其他一些可能的失败原因。 SES仍然处于沙箱模式吗? 如果是这种情况,则需要validationTO和FROM电子邮件地址。

validation个人电子邮件地址可能会更容易,如果您无法获得域validation工作。 所以在SES中创build它们,并通过validation过程。 一旦你创build了这些(或者,如果你设法得到validation的域名)创build一个SNS主题给你发送电子邮件,然后configuration反弹,投诉和传递通知到该SNS主题 – 你应该最终每封邮件交付尝试,无论是否成功。

最后要考虑的是您的电子邮件地址已被添加到抑制列表的可能性。 如果您生成很多错误,SES会将您添加到“不要发送电子邮件”列表中。 在SES控制台中可以请求从此列表中删除。

主机名部分是_amazonses (左栏,旁边的数字2)

值是"u1qHY..."

我认为你在最后一个图像的正确轨道上,只有我相信主机名是_amazonses,而u1qHYT6 / 2KV9Kl1VLKsApXjwcPqVXKJ8KeXj50k =是结果,而不是把所有的结果字段的forms“_amazonses.yourdomain.com = u1qHYT6 / 2KV9Kl1VLKsApXjwcPqVXKJ8KeXj50k =”。 Iiuc的想法是,AWS将curl_amazonses.yourdomain.com,期待您的密钥作为一个TXT文件,但目前你服务的TXT文件的内容_amazonses.yourdomain.com = u1qHYT6 / 2KV9Kl1VLKsApXjwcPqVXKJ8KeXj50k =(I不能完全阅读,因为它的切断;赦免我的猜测)在yourdomain.com而不是。

我相信这是因为你得到错误NXDOMAIN,这意味着域_amazonses.yourdomain.com不存在,这是有道理的,如果你没有build立一个TXTlogging_amazonses.yourdomain.com,但而是为http://yourdomain.com设置txtlogging,而不是使用值_amazonses.yourdomain.com = u1qHYT6 / 2KV9Kl1VLKsApXjwcPqVXKJ8KeXj50k =。 其他两个答案似乎也表明了这一点,这让我感觉更有信心。

我最近为我成功工作的公司validation了一个域,它在我的域名DNS(作为TXTlogging)中设置如下:

亚马逊SES DNS

如果您仍然遇到问题,可能需要阅读Amazon的故障排除页面 。

添加到我的答案:

我刚刚login了AWS控制台,如果打开SES> Domains并单击您的域名。 向下滚动然后点击DKIM,我必须在那里validation一些:

AWS DKIM

并将它们添加为CNAMElogging,如下所示:

DKIM DNS

人们忘记了这个过程的一件事是, 亚马逊要求你在validation之后离开TXTlogging。 否则,他们将撤销域名。

希望这可以帮助!


又一次编辑(对不起)

当我运行nslookup -type=TXT _amazonses.redmatterapp.com ns-1471.awsdns-55.org试图find你的TXTlogging时,它会回来:

 Server: ns-1471.awsdns-55.org Address: 205.251.197.191#53 ** server can't find _amazonses.redmatterapp.com: NXDOMAIN 

这表明TXTlogging安装不正确。