使用nodejs中的SES(AWS)服务发送电子邮件

时间:2018-04-17 10:57:56

标签: amazon-web-services email amazon-sns

我正在尝试使用节点js 中的nodemailer从 AWS SES服务发送电子邮件。

我收到错误“未验证电子邮件地址。以下身份登记区域US-EAST-1失败:”

const nodemailer = require('nodemailer');
var sesTransport = require('nodemailer-ses-transport');

var SESCREDENTIALS = {
    accessKeyId : "XXX" ,
    secretAccessKey : "XXX"
};

var transporter = nodemailer.createTransport(sesTransport({
    accessKeyId: SESCREDENTIALS.accessKeyId,
    secretAccessKey: SESCREDENTIALS.secretAccessKey,
    rateLimit: 5,
    serverUrl : 'email-smtp.us-west-2.amazonaws.com'
}));

var mailOptions = {
    from: 'FromName <no-reply@domain.com>',
    to: 'daiyabhagyashree@gmail.com', // list of receivers
    subject: 'Amazon SES Template TesT', // Subject line
    html: '<p>Mail message</p>' // html body
};

// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
    if( error ) {
        console.log(error);
    } else {
        console.log('Message sent: ' + info);
    }
});

请建议我解决这个问题。

2 个答案:

答案 0 :(得分:0)

您需要验证电子邮件地址才能发送电子邮件。

Verifying an Email Address
Amazon SES Email Sending Errors

  

您正尝试从您的电子邮件地址或域发送电子邮件   尚未通过Amazon SES验证。此错误可能适用于   &#34;来自&#34;,&#34;来源&#34;,&#34;发件人&#34;或&#34;返回路径&#34;地址。如果您的帐户   仍然在Amazon SES沙箱中,您还必须验证每一个   收件人电子邮件地址,但收件人除外   亚马逊SES邮箱模拟器。如果亚马逊SES无法显示所有内容   失败的身份,错误消息以省略号结束。

答案 1 :(得分:0)

https://docs.aws.amazon.com/ses/latest/DeveloperGuide/ses-errors.html

电子邮件地址未经过验证。以下身份登记区域区域失败:identity1,identity2,identity3-您尝试从尚未通过Amazon SES验证的电子邮件地址或域发送电子邮件。此错误可能适用于“发件人”,“来源”,“发件人”或“退货路径”地址。如果您的帐户仍在Amazon SES沙箱中,则还必须验证除Amazon SES邮箱模拟器提供的收件人之外的每个收件人电子邮件地址。如果Amazon SES无法显示所有失败的身份,则错误消息以省略号结尾。 注意 Amazon SES在多个AWS区域中具有端点,并且每个AWS区域的电子邮件地址验证状态是独立的。您必须为要使用的AWS区域中的每个发件人完成验证过程。