Nodemailer:ECONNREFUSED(Nodemailer: ECONNREFUSED)

2019-07-19 03:19发布

我不知道我错过了什么,我用的是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
});

我只是改变了用户和身份验证传递给我的Gmail帐户信息(也试图与他们的价值观),我改变了“到”电子邮件地址,以我的电子邮件地址。 我得到:

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

我在想什么? 我不明白,说我需要做任何事情比这更文档中任何东西,所以为什么不工作? 先感谢您。

Answer 1:

这是一个防火墙问题。 原来没有什么错误的代码,我只是不明白的错误消息意味着什么。



Answer 2:

以下步骤:

  1. 登录Gmail帐户。

  2. 在设置中启用POP3标签

  3. 在启用安全性较低的应用程序: 启用Gmail帐户的安全性较低的应用

  4. 显示解锁在验证码: 显示解锁验证码

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

希望这组代码的帮助你。



Answer 3:

我还使用Gmail帐户发送电子邮件,您可能需要从谷歌应用专用密码,让nodemailer正常工作。

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



Answer 4:

ECONNREFUSED inidcates这是某种联系或防火墙问题。

你可以使用OpenSSL连接为smtp.gmail.com端口465,从同一台机器任何其他应用程序,例如?

openssl s_client -connect smtp.gmail.com:465


Answer 5:

如果你使用新版本nodemailer

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

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



文章来源: Nodemailer: ECONNREFUSED