【发布时间】:2021-06-02 05:38:35
【问题描述】:
通过 API 网关正确创建 REST API 触发器并将其与 lambda 函数链接后,我尝试将 SES 添加为目标。 该功能的目的是通过 SES 服务自动将静态网站上的 HTML 联系表单上收到的消息转发到电子邮件地址。 根据标题,我创建了一个 lambda 函数,我将在下面显示(只是为了隐私而隐藏了域和电子邮件地址)。
var AWS = require('aws-sdk');
var ses = new AWS.SES();
var RECEIVER = 'XXX@gmail.com';
var SENDER = 'XXX@gmail.com';
var response = {
"isBase64Encoded": false,
"headers": { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': 'XXX.com'},
"statusCode": 200,
"body": "{\"result\": \"Success.\"}"
};
exports.handler = function (event, context) {
console.log('Received event:', event);
sendEmail(event, function (err, data) {
context.done(err, null);
});
};
function sendEmail (event, done) {
var params = {
Destination: {
ToAddresses: [
RECEIVER
]
},
Message: {
Body: {
Text: {
Data: 'name: ' + event.name + '\nphone: ' + event.phone + '\nemail: ' + event.email + '\ndesc: ' + event.desc,
Charset: 'UTF-8'
}
},
Subject: {
Data: 'Website Referral Form: ' + event.name,
Charset: 'UTF-8'
}
},
Source: SENDER
};
ses.sendEmail(params, done);
}
已将 SES 的相关权限授予 lambda 函数。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "ses:SendEmail",
"Resource": "*"
}
]
}
功能测试如下:
响应 空
功能日志 开始请求 ID:765f6d27-9810-4d6c-a01b-a883eb429cd8 版本:$LATEST 2021-03-03T15:39:05.849Z 765f6d27-9810-4d6c-a01b-a883eb429cd8 INFO 收到的事件:{ key1:'value1',key2:'value2',key3:'value3'} 结束请求 ID:765f6d27-9810-4d6c-a01b-a883eb429cd8 报告请求 ID:765f6d27-9810-4d6c-a01b-a883eb429cd8 持续时间:928.32 毫秒计费持续时间:929 毫秒内存大小:128 MB 使用的最大内存:87 MB 初始化持续时间:449.71 毫秒
请求 ID 765f6d27-9810-4d6c-a01b-a883eb429cd8
不幸的是,当我单击添加目的地时,我找不到要选择的 SES 服务。 电子邮件地址已在 SES 中验证。 我还缺少什么? 谢谢
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-ses