Node.js nodeEmailer:ECONNREFUSED
我不知道我遗漏了什么,我使用了NodeEmailer示例:Node.js nodeEmailer:ECONNREFUSED,node.js,nodemailer,Node.js,Nodemailer,我不知道我遗漏了什么,我使用了NodeEmailer示例: var nodemailer = require("nodemailer"); // create reusable transport method (opens pool of SMTP connections) var smtpTransport = nodemailer.createTransport("SMTP",{ service: "Gmail", auth: { user: "gmail
var nodemailer = require("nodemailer");
// create reusable transport method (opens pool of SMTP connections)
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
auth: {
user: "gmail.user@gmail.com",
pass: "userpass"
}
});
// setup e-mail data with unicode symbols
var mailOptions = {
from: "Fred Foo ✔ <foo@blurdybloop.com>", // sender address
to: "bar@blurdybloop.com, baz@blurdybloop.com", // list of receivers
subject: "Hello ✔", // Subject line
text: "Hello world ✔", // plaintext body
html: "<b>Hello world ✔</b>" // html body
}
// send mail with defined transport object
smtpTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
// if you don't want to use this transport object anymore, uncomment following line
//smtpTransport.close(); // shut down the connection pool, no more messages
});
我错过了什么?我在文档中没有看到任何东西说我需要做更多的事情,那么为什么它不起作用呢?提前谢谢。这是防火墙问题。原来代码没有问题,我只是不明白错误消息意味着什么。Econrefused指出这是某种连接或防火墙问题 您是否可以使用同一台机器上的任何其他应用程序(例如openssl)连接到smtp.gmail.com端口465
openssl s_client -connect smtp.gmail.com:465
我还使用gmail帐户发送电子邮件,您可能需要谷歌提供特定于应用程序的密码,才能让NodeEmailer正常工作
如果您使用新的NodeEmailer版本
nodemailer.createTransport({
host,
port,
secure:,
auth:{
user,
pass
}
})
更多信息请参见以下步骤:
var mailOptions = {
host: 'smtp.gmail.com',
port: 465,
secure: true, // use SSL
auth: {
user: 'gmail_account@gmail.com',
pass: 'password'
}
}
mailer = nodemailer.createTransport(mailOptions);
mailer.sendMail({
....
}, function(err, response) {
if (err) {
console.log(err);
}
console.log(response);
});
希望这段代码对您有所帮助。在我的情况下,我只需禁用我的防病毒软件Avast 要在avast上创建白名单,请执行以下操作: 这些步骤可能因您的Avast版本而异,包括此处使用的IP 1) 打开Avast,转到:菜单->设置。(位于右上角) 2) 转到常规选项卡->异常->添加异常 3) 获取你的gmail的IP地址,我想会有错误的。 4) 现在将IP粘贴到您的异常上
希望有帮助。实际的问题解决方法是您需要放置服务。使用环境变量更好
var transporter = nodemailer.createTransport({
service: process.env.EMAIL_SERVICE,
auth: {
user:process.env.EMAIL_USER,
pass:process.env.EMAIL_PASSWORD
}
})
防火墙问题
要阻止防火墙以发送电子邮件,您需要允许端口或禁用所有端口
允许特定端口:
$ sudo ufw allow 587
禁用防火墙
$ sudo ufw disable
$ sudo ufw reset
你已经从那个账户发过电子邮件了吗?如果你有,请注意,GMail SMTP是受限制的-你只能从一个帐户在给定的一天发送几百封电子邮件。不,我创建帐户只是为了测试这是否有效。我刚刚从它那里发了我的第一封电子邮件给我自己,我收到了它。然后我再次尝试我的程序,仍然说连接被拒绝。我想评论一下,我已经尝试了sudo。你用过NodeEmailer吗@塞巴斯蒂亚尼已经很长时间没有使用它了,当我使用它的时候,我所有的问题都是因为我达到了Gmail的发送电子邮件限制。您是否尝试过不使用Gmail快捷方式,并键入完整的SMTP地址和所有内容(如此处所述:)?EconRefused InIDC表明这是某种连接或防火墙问题。您是否可以使用同一台计算机上的任何其他应用程序连接到smtp.gmail.com端口465,例如使用openssl:
openssl s_客户端-连接smtp.gmail.com:465
这应该是一条注释我遇到了相同的问题。我可以在同一台机器上使用gmail,那么为什么防火墙会阻止nodemailer呢?此外,我还没有在gmail中设置两步验证,因此我认为不需要应用程序特定的密码。请您进一步解释一下?对于那些使用secure:false
的用户,请签出此链接:
$ sudo ufw disable
$ sudo ufw reset