Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在Nodejs Openshift应用程序中使用nodemailer连接ETIMEDOUT错误大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的node.js中使用Nodemailer模块遇到一些问题.在Openshift中使用单一设备不可扩展的应用程序.正如 documentation建议的那样,我初始化了transporter对象并使用了sendMail函数.我的代码的简化版本是

var transporter = nodemailer.createTransport({
    service: 'Gmail',auth: {
        user: 'my.mail@gmail.com',pass: 'mypassword'
    }
});

var mail = {
    from: 'my.mail@gmail.com',to: 'test@mydomain.com',subject: 'Test mail',html: 'Test mail'
};

transporter.sendMail(mail,function(error,info) {
    if(error){
        console.log(error);
    }else{
        console.log(info);
    }
});

当我在本地计算机上运行时,此代码可以正常工作,但是当我尝试在服务器上执行它时,我收到了ETIMEDOUT错误,好像应用程序无法连接到smtp服务器.

{ [Error: connect ETIMEDOUT] code: 'ETIMEDOUT',errno: 'ETIMEDOUT',syscall: 'connect' }

我试增加超时连接参数,但我得到了相同的结果.

var transporter = nodemailer.createTransport({
    service: 'Gmail',pass: 'mypassword'
    },connectionTimeout: 5 * 60 * 1000,// 5 min
});

是否缺少防火墙或认的Openshift设置或环境变量?

解决方法

我还要进行一些测试,但我想我弄清楚了问题是什么.通过@R_301_2505@和密码进行身份验证是Gmail的一种不安全的身份验证方法.正如Nodemailer文档中所写

我使用XOAuth2升级了我的授权方法,在此guide中进行了解释,现在邮件已正确发送.

大佬总结

以上是大佬教程为你收集整理的node.js – 在Nodejs Openshift应用程序中使用nodemailer连接ETIMEDOUT错误全部内容,希望文章能够帮你解决node.js – 在Nodejs Openshift应用程序中使用nodemailer连接ETIMEDOUT错误所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。