Nodemailer连接超时错误

时间:2017-02-22 09:24:56

标签: javascript node.js nodemailer

我正在使用nodemailer模块从我的nodejs应用程序发送邮件。 我收到错误:连接ETIMEDOUT xxx.xxx.xx.xxx:465 。任何人都可以帮我解决这个问题。 我在这里粘贴我的代码。

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

console.log('created');
transporter.sendMail({
from: 'my_mail_id@gmail.com',
  to: 'my_mail_id@gmail.com',
  subject: 'hello world!',
  text: 'hello world!'
});

5 个答案:

答案 0 :(得分:0)

// Create a SMTP transport object
var transport = nodemailer.createTransport("SMTP", {
    service: 'Hotmail',
    auth: {
        user: "username",
        pass: "paasweord"
    }
});

console.log('SMTP Configured');

// Message object
  var message = {

  // sender info
  from: 'abc@hotmail.com',

   // Comma separated list of recipients
  to: req.query.to //'aadityashukla9@hotmail.com',

   // Subject of the message
  subject:req.query.subject //'Nodemailer is unicode friendly ✔', 

  // plaintext body
   text: req.query.text //'Hello to myself!',

  // HTML body
  /*  html:'<p><b>Hello</b> to myself <img src="cid:note@node"/></p>'+
     '<p>Here\'s a nyan cat for you as an embedded attachment:<br/></p>'*/
  };

  console.log('Sending Mail');
  transport.sendMail(message, function(error){
  if(error){
  console.log('Error occured');
  console.log(error.message);
  return;
  }
   console.log('Message sent successfully!');


//transport.close(); // close the connection pool
  });

答案 1 :(得分:0)

我今天遇到了同样的问题,发现了这个文档...

https://nodemailer.com/usage/using-gmail/

通过登录gmail时访问网址,必须从服务器执行capcha流程。

希望它可以帮助他人。

答案 2 :(得分:0)

出现此错误的唯一原因是:

  1. 安全性较低的应用:您必须从Gmail帐户启用“安全性较低的应用”。

  2. 使用OAuth

答案 3 :(得分:0)

除了已经提到的https://nodemailer.com/usage/using-gmail/信息的引用外,在我的情况下,互联网路由器(Speedport W724V)仍然存在问题。这将保留所有允许的SMTP服务器的列表。在我相应地扩展了列表之后,它完美地工作了。我必须对smtp.ethereal.email做同样的事情。

答案 4 :(得分:0)

这可能是防火墙问题。我在Ubuntu(Digital Ocean服务器)中遇到了类似的问题。尝试将问题修复3天,还尝试使用auth2,使用ufw inactive命令对不活动的防火墙进行了尝试,但是没有运气。最终,我检查了Digital Ocean管理面板并为Droplet创建了防火墙。通过在防火墙设置中启用TCP入站和出站,可以解决问题。