我正在使用nodemailer发送邮件。我需要知道邮件是否已发送,然后更新我的数据库,但是邮件被发送到传输器中(我认为传输器不返回承诺),这需要时间,因此即使邮件已发送,返回值始终为false。
这是我从其他路由调用的邮件发送文件。
// mail_file.js
// imports
sendmail = async (req) => {
let transporter = nodemailer.createTransport({
// settings
});
var mailOptions = {
// mailoptions
};
let resp = false;
await transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log('error is ' + error);
resp = false;
} else {
console.log('Email sent: ' + info.response);
resp = true;
}
});
return resp;
};
module.exports = sendmail;
当我记录邮件信息时,在somepath.js中的sendmail函数响应记录之后。
nodemailer
v6.4.8支持sendMail
同步版本和异步版本。其中,同步版本需要回调函数作为参数(callback
),而异步版本则返回一个Promise
对象。具体用法可参考以下代码:sendMail(mailOptions: Mail.Options): Promise;```
- newguy