使用SES node.js

时间:2017-05-11 04:47:44

标签: node.js amazon-web-services

我正在尝试通过亚马逊SES验证的电子邮件向我的其他电子邮件发送电子邮件,但程序会出现错误,即未验证电子邮件地址到字段。我正在制作一个允许用户使用AWS Cognito登录的Web应用程序,因此我没有在数据库中使用他们的电子邮件地址。我需要在活动上向他们发送电子邮件(我不能使用SNS,因为我需要向我已经想到的选择性人员发送电子邮件。)所以我的问题是: a)我们是否还需要验证收件人的SES电子邮件? b)如果是,我们如何使用cognito身份池来验证他们的SES电子邮件地址。

代码:

var aws = require("aws-sdk");
aws.config.update({
    region: "us-west-2",
});

var ses = new aws.SES({"accessKeyId": "Mykey", "secretAccessKey":"YY","region":"us-west-2"})



var to = ['xyz@gmail.com']
var from='abc@gmail.com'




ses.sendEmail( {
    Source: from,
    Destination: { ToAddresses: to },
    Message: {
            Subject:{
    Data:"Sending emails through SES"
},
        Body: {
    Text: {
        Data: 'Stop your messing around',
    }
}
}
}
, function(err, data) {
    if(err) throw err
    console.log('Email sent:');
    console.log(data);
}

错误:

MessageRejected:未验证电子邮件地址。以下身份未通过区域US-WEST-2检查:xyz@gmail.com

1 个答案:

答案 0 :(得分:0)

如果您在SES沙箱中对此进行测试,则需要先手动验证收件人电子邮件地址,然后才能发送。

离开沙箱后不需要执行此步骤,但在开发过程中测试与电子邮件相关的功能时,这是一个合理的默认安全设置,并且不希望伪造的电子邮件真实地发送给我们。

Amazon SES Email Sending Errors(粗体相关部分):

  

未验证电子邮件地址。以下身份失败了   登记区域:,, - 你   正在尝试从您拥有的电子邮件地址或域发送电子邮件   尚未通过Amazon SES验证。此错误可能适用于" From",   " Source"," Sender",或" Return-Path"地址。 如果您的帐户仍然有效   在沙箱中,您还必须验证每个收件人电子邮件地址

在AWS中测试您的电子邮件发送而不需要发送实际电子邮件的更简单方法是使用他们的mailbox simulator

  

Amazon SES邮箱模拟器是一组测试电子邮件地址。   每个电子邮件地址代表特定方案。您可以发送电子邮件   到您想要的邮箱模拟器:

     

测试您的应用程序,而无需创建测试" To"地址。