[英]How to fix sending emails with AWS SES and Lambda?
我正在AWS上設置一個簡單的NodeJS Lambda函數來發送電子郵件。
當我在本地運行時,下面的代碼正在工作。 我已收到來自AWS的所有憑據,已驗證發件人和收件人電子郵件,並為我的Lamba授予了對SES的所有權限
const aws = require("aws-sdk");
const config = require('../config')
aws.config.update({
accessKeyId: config.mailUser,
secretAccessKey: config.mailPassword,
region:'us-east-1'
});
const ses = new aws.SES({apiVersion: '2010-12-01'});
const sendEmail = async (mailOptions) => {
const {
from,
to,
subject,
html
} = mailOptions
console.log('foo')
ses.sendEmail({
Source: from,
Destination: {
ToAddresses: [to]
},
Message: {
Subject: {
Data: subject,
Charset: 'UTF-8'
},
Body: {
Html: {
Data: html,
Charset: 'UTF-8'
}
}
}
},
(err, data) => {
console.log('baz')
if (err) {
console.error(err);
} else {
console.log('Email sent:');
console.log(data);
}
});
};
console.log('bar')
module.exports = {
sendEmail
};
似乎ses.sendEmail()
永遠不會在該函數部署時觸發-我在CloudWatch日志中獲取了foo
和bar
但從沒有baz
。 同樣,如果在本地運行,則一切運行會很平穩。
我想念的是什么?
這是一個很好的解釋-顯然,您需要將ses.sendMail
調用包裝在一個與AWS Lambda一起使用的承諾中。
所有功勞歸於https://www.reddit.com/user/jsdfkljdsafdsu980p/和https://www.reddit.com/user/Enoxice/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.