亚马逊SES - 无法收到电子邮件

时间:2015-12-29 08:39:44

标签: node.js email amazon-ec2

我有一个运行node.js应用程序的aws ubuntu服务器。我正在尝试构建一个简单的忘记密码功能,向用户发送电子邮件。代码运行但没有发送电子邮件,所以我认为我仍然遗漏了一些东西。

1)在SES内,我验证了电子邮件域a2zcribbage.com。我认为这意味着我现在可以从此域下的任何别名发送电子邮件,对吗?

2)我将SES模块安装到我的ec2服务器上。

3)我的代码如下:

aws.config.update({accessKeyId: 'MYKEY', secretAccessKey: 'MYKEY', region: 'us-west-2'});
var ses = new aws.SES({apiVersion: '2010-12-01'}); // load AWS SES
var to = [post.email]; // send to list
var from = 'support@a2zCribbage.com'; // this must relate to a verified SES account
ses.sendEmail( { // this sends the email @todo - add HTML version
      Source: from, 
      Destination: { ToAddresses: to },
      Message: {
        Subject: { Data: 'a2zCribbage - Temporary Password' },
        Body: {
          Text: {
            Data: "Your username is: " + userName + ". Your temporary password is: " + tempPassword
          }
        }
      }
    }, function(err, data) { if (err) console.log(err); });

代码运行时没有错误,但没有发送电子邮件。如果没有错误,我该如何进一步调试?

2 个答案:

答案 0 :(得分:1)

我对你的问题的建议:

  1. 确保您已从沙箱中移除,为此,您需要联系aws以扩展限制,这是任何aws帐户的免费服务。

  2. 直接向SES注册一个真实邮箱,例如import org.apache.spark.sql.functions.{countDistinct} val exprs = Seq("prop1", "prop2", "prop3") .map(c => (countDistinct(c) > 1).cast("integer").alias(c)) val combined = result.reduce(_ unionAll _) val aggregatedViaGroupBy = combined .groupBy($"id") .agg(exprs.head, exprs.tail: _*) aggregatedViaGroupBy.show // +---+-----+-----+-----+ // | id|prop1|prop2|prop3| // +---+-----+-----+-----+ // | 0| 1| 1| 0| // | 1| 1| 0| 0| // | 2| 1| 1| 1| // | 3| 1| 1| 1| // | 4| 0| 0| 0| // +---+-----+-----+-----+ ,以测试代码是否有效。

  3. 从代码中,您似乎错过了加载aws sdk。

    var aws = require(' aws-sdk');

  4. 创建SNS任务,下标SMS或邮箱,在SES中启用退回或投诉通知,用它,您可以确认设置是否正确。

  5. 请告诉我这是否可以帮助您解决问题。

答案 1 :(得分:0)

我会在这里回答我自己的问题。每个人的反馈都很好。我缺少的一件事是,默认情况下,当您创建SES帐户时,您将进入“沙盒”模式,而不是完整的电子邮件发送模式,因此我尝试发送电子邮件但不允许它。一旦我要求我退出沙箱模式,一切工作都很好。