在 AWS Lambda 中,异步调用 SES 服务通常需要进行一些特殊的处理来确保它能够正确工作。以下是一个示例代码,可以用于在 Lambda 中异步调用 SES:
const AWS = require('aws-sdk');
const ses = new AWS.SES({region: 'us-west-2'}); // 替换为实际的 AWS 区域
exports.handler = async (event) => {
const {to, subject, message} = event;
const params = {
Destination: {
ToAddresses: [to]
},
Message: {
Body: {
Text: {
Data: message
}
},
Subject: {
Data: subject
}
},
Source: 'noreply@example.com' // 替换为实际的发件人邮箱
};
try {
const result = await ses.sendEmail(params).promise();
console.log(result);
return {
statusCode: 200,
body: JSON.stringify({
success: true,
message: 'Email sent successfully'
})
};
} catch (err) {
console.error(err);
return {
statusCode: 500,
body: JSON.stringify({
success: false,
message: 'Failed to send email'
})
};
}
};
使用 async/await 和 Promise,可以确保异步调用 SES 正确工作。