amazon-web-services - Lambda 上的 AWS SES - 无法(静默)发送电子邮件
问题描述
我正在尝试在aws-lambda上使用amazon-ses服务,以便向经过验证的收件人发送电子邮件。
我正在关注这个简单的教程,它显示了一个简单的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
任何帮助,将不胜感激。
编辑:我工作的来源sandbox-mode
和收件人都是来自代码中提到的区域的经过验证的电子邮件(它也反映在日志中 - 没有引发错误)。
我在 SO 中找到了以下问题 - 但没有与我的案例相关的答案:
解决方案
您的代码非常好。我刚刚尝试使用您的代码,它没有问题。
我建议您检查您的身份设置和沙盒模式。
如果您仍处于沙盒模式,它只允许您从经过验证的电子邮件地址向其他经过验证的电子邮件地址发送电子邮件。
该文档将很有帮助。
推荐阅读
- python - 与计算机进行 40 秒的串行通信后,Arduino 停止工作
- sql - 雪花合并到删除是删除所有内容还是保留所有行?
- xml - Bash shell XML 到 CSV
- java - 保存时在 IntelliJ 中使用 google-java-format 格式化 Java 代码
- django - 如何使用 Postgres 提高 Django 的文本查询计数
- petsc - 与“扩展宏 'CHKERRQ”' 相关的编译错误
- python - 试图在不和谐 python bot 中使用多个 f 字符串不起作用
- java - mockito 测试通知用户某些事件的 void 方法不起作用
- html - 如何用虚线水平分隔两个文本即:text1............text2
- android - BottomNavigationView - Android Studio