我在Openshift中的node.js single gear不可扩展应用程序中使用NodeEmailer模块时遇到了一些问题。正如文档所建议的,我初始化了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',
auth: {
user: 'my.mail@gmail.com',
pass: 'mypassword'
},
connectionTimeout: 5 * 60 * 1000, // 5 min
});
是否有我丢失的防火墙或默认Openshift设置或环境变量?
如果你想从localhost运行这个。
在auth选项后添加以下代码行
tls:{
rejectUnauthorized:false
}
它可以工作,但是您可以考虑升级到XOAuth2,如M.T.Mik.KiWi提出的
在我的情况下,问题是与端口我已经改变端口从25到2525和它的工作。
尝试更改端口
我还得再做一些测试,但我想我知道问题出在哪里了。通过用户名和密码进行身份验证对于Gmail来说是一种不安全的身份验证方法。如nodeEmailer文档中所述
尽管Gmail是开始发送电子邮件的最快方式,但除非您使用OAuth2身份验证,否则它决不是一个更好的解决方案。Gmail希望用户是一个真正的用户,而不是一个机器人,因此它会对每一次登录尝试运行大量的启发式算法,并阻止任何看起来可疑的行为,以保护用户免受帐户劫持企图。例如,如果您的服务器位于另一个地理位置,您可能会遇到问题—所有东西都在您的开发机器中工作,但消息在生产中被阻止。
我使用XOAuth2升级了我的授权方法,在本指南中也有解释,现在邮件被正确发送了。
我在Node.js忘记密码后端路由,我试图使用nodemailer从我从namecheap.com购买的自定义域发送电子邮件,以及电子邮件域。我不确定这是主机、端口/安全还是授权的问题。但是,当我更改主机时,它会给出一个ECONREFUSED错误,所以我相信该部分正在工作。我的防火墙被禁用了(据我所知),我重新启动了,但是很难判断,因为诺顿防病毒软件控制着它。 这是我的代码,取自路由器。在我的后端
我错过了什么?到目前为止,我搜索到的所有答案都建议使用1.2.1,我已经在做了。 任何建议都将不胜感激!
我尝试执行下面的python代码 最后一个语句通过以下连接错误。
null 脚本'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle'行:838 出了什么问题: 任务“:app:CompileFlutterBuildreLease”执行失败。 null null 应用程序:Build.Gradle
当我连续发布数据时,我会在C#应用程序上得到发布超时错误,一旦我重新启动应用程序,它会工作几个小时。[注意:由于php需要时间完成任务,所以新的请求都在等待中,它创建队列,等待时间超过2分钟,im出现超时错误]。 我们的两台服务器都使用了最大50%的CPU和RAM使用量 我检查了两个C#代码和PHP代码都工作良好,没有任何问题或bug 提前致谢哥们儿:)