我有一个基本的AWS帐户,我们在其中部署了一个lambda函数。此外,我们在lambda函数中配置了AWS SES服务来发送电子邮件(我们的SES服务也被移出了沙箱并增加了限制(。
我们大约每分钟发送两封电子邮件,但我们发现很少收到邮件,但大多数时候我们都没有收到任何电子邮件。
我们还尝试在两个地区部署应用程序,但都没有成功。
样本代码
const AWS = require('aws-sdk');
//AWS Options
const options = {
region: 'us-east-1',
// accessKeyId not required because of server less app (SWS policy added in role)
// secretAccessKey not required because of server less app (SWS policy added in role)
}
const ses = new AWS.SES(options);
const sendEmail = (sender, receivers, subject, content) => {
console.log("Sending From", sender);
console.log("REceiver Email", receivers);
const promise = new Promise((resolve, reject) => {
ses.sendEmail({
Source: sender,
Destination: {
ToAddresses: receivers
},
Message: {
Subject: {
Data: subject
},
Body: {
Html: {
Data: content
}
}
}
}, (err, data) => {
if (err) {
console.log(err)
reject(err)
}
resolve(data)
});
});
return promise
};
我认为这里发生了几件事:
- 返回promise的JavaScript函数需要是
async
- Lambda函数可能超时(默认值为3秒(