我有一个运行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); });
代码运行时没有错误,但没有发送电子邮件。如果没有错误,我该如何进一步调试?
答案 0 :(得分:1)
我对你的问题的建议:
确保您已从沙箱中移除,为此,您需要联系aws以扩展限制,这是任何aws帐户的免费服务。
直接向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|
// +---+-----+-----+-----+
,以测试代码是否有效。
从代码中,您似乎错过了加载aws sdk。
var aws = require(' aws-sdk');
创建SNS任务,下标SMS或邮箱,在SES中启用退回或投诉通知,用它,您可以确认设置是否正确。
请告诉我这是否可以帮助您解决问题。
答案 1 :(得分:0)
我会在这里回答我自己的问题。每个人的反馈都很好。我缺少的一件事是,默认情况下,当您创建SES帐户时,您将进入“沙盒”模式,而不是完整的电子邮件发送模式,因此我尝试发送电子邮件但不允许它。一旦我要求我退出沙箱模式,一切工作都很好。