Nodejs,使用Bluehost SMTP使用Nodemailer发送的电子邮件未送达,没有错误

Sha*_*med 1 email smtp node.js

我正在尝试从我的 Nodejs 应用程序发送电子邮件。我为此使用了Nodemailer包。这是我用于发送电子邮件的代码;

let smtpTransport = nodemailer.createTransport({
   host: "box***.bluehost.com",
   port: 465,
   secure: true,
   auth: {
     user: <noreply@mydomain.com>,
     pass: <password>
   }
});

let sendResetPasswordEmail = (user, token) => {
   let mailOptions = {
       to : user.workEmail,
       subject : "Reset your password",
       text : _generateResetPasswordEmail(user, token)
   }

   smtpTransport.sendMail(mailOptions, (error, response) => {
       if(error){
           console.error(error);
       } else {
           console.log("Message sent: " + response.message);
           console.log(response);
       }
   });
}
Run Code Online (Sandbox Code Playgroud)

smtpTransport.sendMail函数的回调中,错误为空,这是我得到的响应

{ 
   accepted: [ 'toemail@somedomain.com' ],
   rejected: [],
   response: '250 OK id=short-hyphenated-alpha-numeric-id>',
   envelope: { from: '', to: [ 'toemail@somedomain.com' ] },
   messageId: '<long-hyphenated-alpha-numeric-id@my-machine-name>'
}
Run Code Online (Sandbox Code Playgroud)

响应中的一切似乎都很好,状态代码是 250,但toemail@somedomain.com根本不会收到这封电子邮件。另外,我在 bluehost 电子邮件仪表板的“已发送”列表中找不到它。可能出什么问题了。

小智 5

我遇到了同样的问题。我能够通过在 createTransport 对象上添加 name 属性来解决这个问题。名称:“mail.yourdomain”。如果您没有看到电子邮件,请检查垃圾邮件文件夹。这是从https://github.com/nodemailer/nodemailer/issues/677获得的, 我希望这会有所帮助。