Nodemailer:ECONNREFUSED

我不知道我错过了什么,我使用Nodemailer示例:

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 }); 

我只是改变了用户,并通过身份validation到我的Gmail帐户信息(也尝试与他们的价值观),我改变了“到”电子邮件地址到我的电子邮件地址。 我得到:

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

我错过了什么? 在文档中我没有看到任何说明我需要做更多的事情,那么为什么它不起作用呢? 先谢谢你。

这是一个防火墙问题。 原来代码没有错,我只是不明白错误信息的含义。

我还使用Gmail帐户发送电子邮件,您可能需要从谷歌的应用程序特定的密码,以允许nodemailer正常工作。

https://support.google.com/mail/answer/1173270?hl=en

ECONNFUSED指出这是某种连接或防火墙问题。

你能连接到smtp.gmail.com端口465与任何其他应用程序从同一台机器,例如与openssl?

 openssl s_client -connect smtp.gmail.com:465 

如果你使用新的nodemailer版本

 nodemailer.createTransport({ host, port, secure:, auth:{ user, pass } }) 

更多见https://github.com/andris9/nodemailer-wellknown

以下步骤:

  1. loginGmail帐户。

  2. 在设置标签中启用pop3

  3. 启用不太安全的应用程序: 为Gmail帐户启用不太安全的应用程序

  4. 显示解锁validation码: 显示解锁validation码

  5. 定义了电子邮件选项并发送

     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); }); 

希望这个块代码可以帮助你。