使用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) ()被执行。我尝试在许多其他测试中消除这一点无济于事。
感谢您的帮助。