Nodemailer在实时服务器上失败但在本地计算机

时间:2017-10-21 16:06:24

标签: node.js nodemailer

使用nodemailer发送注册确认电子邮件。在我的本地计算机上正常工作,但从实时服务器(使用DigitalOcean Droplet& InMotionHosting电子邮件帐户)失败。

我尽可能多地尝试了无用的事情,所以我不知道下一步该怎么做。任何帮助表示赞赏。

以下是代码:

        let transporter = nodemailer.createTransport({
           host: 'mail.domain.com',
           port: 587,
           secure: false, 
           auth: {
              user: 'test@domain.com',
              pass: '654cba'     
           },
           // true for live server, false for local machine
           tls: {
              rejectUnauthorized: true
           }
        });


        let mailOptions = {
           from: '"Register" <test@domain.com>', 
           to: user.username,  // email address from user object 
           subject: 'Registration',
           html: '<h1>mail content</h1>'
        };


        transporter.sendMail(mailOptions, function(error, info) {
           if (error) {

              console.log(error);

              return res.send('Error sending confirmation email to: ' + user.username);
           }

           console.log('Message sent: %s', info.messageId);


           req.flash('success', 'Success! Welcome ' + user.fullname + '! Please check your email, and click the link to complete your registration.');

           res.redirect('/');
        });

我将tls.rejectUnauthorized设置为&#39; false&#39;对于本地机器,它按预期工作。

在实时服务器上,我将其设置为&#39; true&#39;,但在transporter.sendMail之后收到错误消息(&#39;错误,将确认电子邮件发送到:&#39; + user.username) ()被执行。我尝试在许多其他测试中消除这一点无济于事。

感谢您的帮助。

0 个答案:

没有答案