2017-07-26 138 views
0

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

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

这里是我的设立:

var smtpTrans = nodemailer.createTransport({ 
     service: 'hotmail', 
     auth: { 
      user: '[email protected]', 
      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('/') 
     } 
     }); 
} 
}); 

回答

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: <[email protected]>, 
    from: <[email protected]>, // 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 
    } 
}); 
+0

嘿,我有同样的问题,但我不明白为什么它会给出一个连接超时,如果它是一个寒冷的知识产权问题。如果发送网格是一个更好的可信解决方案,那么gmail会拒绝该电子邮件吗?为什么会超时? –

+0

@RakshithRavi嘿!我相信有一个超时,因为它试图连接到邮件服务器,并花了很长时间来这样做。 (只是猜测。)我无法使用我的Hotmail电子邮件地址工作,因为它无法足够快地连接。发送网格电子邮件的工作非常出色 – AndrewLeonardi

+1

嗯,我不能接受SendGrid能够做我们做不到的事情。我使用https和letsencrypt证书设置了我的服务器。我会接受挑战,让它在没有sendgrid的情况下工作!哈哈!一旦我有了进展,我会尽快回复您。P –