【发布时间】:2020-04-12 22:44:28
【问题描述】:
我正在尝试在 nodejs 中使用 aws-sdk ses 发送电子邮件。 在执行代码时,我得到的响应是:
消息: '电子邮件地址未验证。以下身份未通过 US-EAST-1 区域中的检查:xxxtestemailxxx@gmail.com', 代码:'MessageRejected'
我已经验证了发件人和收件人电子邮件(数组中的目标电子邮件)。 在 aws 控制台的 SES 设置中,显示电子邮件已通过验证。我删除了电子邮件,然后再次成功验证了它。 上次(几个月前)我使用它时,一切正常。
当我使用 aws 控制台发送测试电子邮件时,它工作正常。这仅在我尝试使用 aws-sdk 发送电子邮件时发生。 有谁知道出了什么问题,为了清楚起见,我也在下面发布代码:
const send_email = function (email, subject, source, payload) {
console.log(email, subject, source, payload);
let email_param = {
Destination: {
ToAddresses: email
},
// ConfigurationSetName: 'XXXRANDOMTEXT_PLATFORM',
Message: {
Body: {
Html: {
Charset: "UTF-8",
Data: payload
}
// Text: {
// Charset: "UTF-8",
// Data: payload
// }
},
Subject: {
Charset: "UTF-8",
Data: subject
}
},
Source: source
};
let send_email = SES.sendEmail(email_param).promise();
send_email
.then(data => {
return true;
})
.catch(error => {
console.log('sending email error:', error);
return false
});
}
【问题讨论】:
-
电子邮件未被验证的一种可能性是,如果您尝试在代码的不同区域调用 SES。调用时如何执行 SES 区域?
-
@filipebarretto 我在 aws 配置中使用与验证电子邮件相同的区域,即 us-east-1
-
是同一账户的凭证吗?如果您处于沙盒模式,则需要验证 From 和 To address ,还请注意,SES 中的电子邮件地址是区分大小写的,请确保您在已验证的代码中使用完全相同的电子邮件(相同大小写)控制台。
-
@JamesDean,我正在使用正确的凭据,因为我的整个应用程序都使用相同的凭据并且工作正常。是的,我处于沙盒模式,并且我已经验证了我的 TO 和 FROM 两个电子邮件地址,因为我也发布了相同的屏幕截图。区分大小写,所有使用的电子邮件都是小写的。
-
@Gaurav 你能添加你如何实例化 SES 的代码吗?
标签: node.js amazon-web-services amazon-ses