我正在使用nodemailer(v1.0.4)在我的Node应用程序中发送电子邮件。这是代码:
smtpUtil.js
var nodemailer = require("nodemailer");
var config = require("../config").mailgun;
var transporter = nodemailer.createTransport({
service: 'Mailgun',
auth: {
user: config.username,
pass: config.password
},
});
transporter.mailSent = function(mailOptions, callback) {
transporter.sendMail(mailOptions, function(error, response) {
if (error) {
console.log("Error in sending mail", error);
callback(new Error(error));
} else {
console.log("Email sent successfully");
callback();
}
});
}
module.exports = transporter;
我只是将此smtpUtil.js
包含在其他文件中,然后致电transporter.mailSent(mailOpts, callbackFn);
发送电子邮件。
我的问题是:如何添加最大超时时间&优雅地处理过程中的那些?
我询问上述配置的原因是最近在代码中,我调用了transporter.mailSent(mailOpts, callbackFn)
。但由于某种原因(可能是无限超时),callbackFn
从未被触发(既不成功也不失败)。
最新NodeMailer module虽然提供了3个超时选项,如下所示:
但我不确定哪一个与此相关,以解决callbackFn
永远不会被触发的问题。