当我尝试调用我的云函数(该函数通过nodemailer发送邮件)时,我必须先调用它一次,然后它才能真正“激活”,然后才能正常工作,直到经过一段时间并且需要相同的过程为止。
在第一次通话中,我没有收到日志。
exports.sendEmail = functions.https.onRequest((req, res) => {
console.log(req.body);
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log("Message sent: %s", info.messageId);
console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
return res.sendStatus(200);
});
});
答案 0 :(得分:1)
一些方法来保证您的回答。
const sendMail = function(mailOptions, transporter) {
return new Promise(function(resolve, reject) {
transporter.sendMail(mailOptions, function(error, info) {
if (error) {
reject(error);
} else {
resolve(info);
}
});
});
};
另一种方法是做类似的事情
return transporter.sendMail(mailOptions).then(function(response) {
return res.sendStatus(200);
}).catch(function(error) {
console.info(error);
})
我会把硬币放在上面。