gpt4 book ai didi

node.js - NodeMailer 中的处理超时

转载 作者:太空宇宙 更新时间:2023-11-04 01:55:27 32 4
gpt4 key购买 nike

我正在使用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个超时选项,如下:

  • options.connectionTimeout 等待多少毫秒连接建立
  • options.greetingTimeout建立连接后等待问候语的毫秒数
  • options.socketTimeout允许多少毫秒的不活动状态

但我不确定哪一个与解决 callbackFn 永远不会被触发的问题相关。

最佳答案

我通过添加最大 TTL 来处理电子邮件发送部分解决了这个问题。

自从我使用 kue ,配置最大值相当容易 TTL .

关于node.js - NodeMailer 中的处理超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48155793/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com