我正在尝试使用 amazon-ses服务 aws-lambda以便向经过验证的收件人发送电子邮件。
我正在关注 this显示简单 nodejs 的简单教程功能:
var aws = require('aws-sdk');
var ses = new aws.SES({region: 'us-east-1'});
exports.handler = (event, context, callback) => {
var params = {
Destination: {
ToAddresses: ["recipientEmailAddress"]
},
Message: {
Body: {
Text: { Data: "Test" }
},
Subject: { Data: "Test Email" }
},
Source: "sourceEmailAddress"
};
ses.sendEmail(params, function (err, data) {
callback(null, {err: err, data: data});
if (err) {
console.log(err);
context.fail(err);
} else {
console.log(data);
context.succeed(event);
}
});
};
以下策略是 lambda 角色的一部分:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ses:SendEmail"
],
"Resource": "*"
}
]
}
出于某种原因,此 lambda 函数无法发送任何电子邮件,并且它不会在函数的 CloudWatch 日志组中提供任何状态信息:
REPORT RequestId: XXX Duration: 534.59 ms Billed Duration: 600 ms Memory Size: 128 MB Max Memory Used: 117 MB
如有任何帮助,我们将不胜感激。
编辑:我在沙盒模式
下工作,source 和recipient 都是来自该地区的经过验证的电子邮件代码中提到(它也反射(reflect)在日志中 - 没有抛出错误)。
我在 SO 中发现了以下问题 - 但没有与我的案例相关的答案:
Sending email via AWS SES within AWS Lambda function
最佳答案
您的代码完全没问题。我刚刚尝试使用您的代码,没有问题。
我建议您检查您的身份设置和沙盒模式。
如果您仍处于沙盒模式,它只允许您从经过验证的电子邮件地址向其他经过验证的电子邮件地址发送电子邮件。
This文档会有所帮助。
关于amazon-web-services - Lambda 上的 AWS SES - 无法(静默地)发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59112198/