NodeMailer:错误:连接超时

时间:2017-07-26 19:41:49

标签: email nodemailer

我正在使用NodeMailer发送电子邮件。我已成功使用我的Gmail帐户发送电子邮件。我刚刚通过Godaddy切换到我的域名自定义电子邮件。此电子邮件通过hotmail运行。现在我已经进行了这个切换,每次都会出现错误:连接超时。 Gmail仍然有效,但我无法使用Hotmail工作。

有关如何解决此问题的任何建议?是否有更好的电子邮件选择用于NodeMailer?

这是我的设置:

 var smtpTrans = nodemailer.createTransport({
       service: 'hotmail',
        auth: {
            user: 'contact@my-domain.com',
            pass: '*********'
        }
      });
      var mailOptions = {
        to: rental.createdbyemail,
        from: 'email',
        subject: 'Your apartment was just rented!',
        text: 'my email'  
      };
      smtpTrans.sendMail(mailOptions, function(err) {
        console.log('email sent')
        if (err){
        console.log(err)
        } else {
        // res.redirect('/')
        }
      });
 }
});

1 个答案:

答案 0 :(得分:0)

在做了一些研究后,看起来像使用像SendGrid这样的专用电子邮件系统是可行的方法。看看这个guide

代码设置:

// emailer.js
const nodemailer = require('nodemailer');
const sendgridTransport = require('nodemailer-sendgrid-transport');

// Configure Nodemailer SendGrid Transporter
const transporter = nodemailer.createTransport(
  sendgridTransport({
    auth: {
      api_user: process.env.SENDGRID_API_USER,    // SG username
      api_key: process.env.SENDGRID_API_PASSWORD, // SG password
    },
  })
);

// Create Email Options
const options = {
  to: <to_email@domain.com>,
  from: <from_email@domain.com>, // Totally up to you
  subject: <email_subject>,
  html: <html_body>,             // For sending HTML emails
};

// Send Email
transporter.sendEmail(options, (err, resp) => {
  if (err) {
    // handle error
  } else {
    // handle success
  }
});