首页 > 解决方案 > 电子邮件被 Nodemailer 拒绝发送

问题描述

在此处输入图像描述我正在尝试在 nodemailer-express-handlebars 的帮助下发送一封包含 HTML 内容的电子邮件。每次我的邮件被 Gmail 阻止时,可以在发件人的 Gmail 发件箱中检查,而我从 nodemailer 获得成功消息 时,Email sent: 250 2.0.0 OK 1595608108 i66sm6757247pfc.12 - gsmtp 我无法理解为什么会发生这种情况,因为当我发送带有文本的邮件时,它会被传递。

节点邮件代码

sendMail=(email)=>{
    var transporter = nodemailer.createTransport({
        service: 'gmail',
        auth: {
          user: 'emailId',
          pass: 'password'
        }
      });

      transporter.use('compile',hbs({
          viewEngine:{
            partialsDir:"./views/",
            defaultLayout: "",
            layoutsDir: "",
          },
          viewPath:"./views/",
          extName:'.hbs',
      }))
      var mailOptions = {
        from: '<xyz@gmail.com>',
        to: email,
        subject: 'Your order has been placed successfully.',
        template:'mail',
        context:{
            name:"XYZ",
            address:"133"
        }
 
      };
      
      transporter.sendMail(mailOptions, function(error, info){
        if (error) {
          console.log(error);
        } else {
          console.log('Email sent: ' + info.response);
        }
      });
}

标签: node.jsexpressnodemailer

解决方案


建议将 OAuth2 与 NodeMailer 和 Gmail 一起使用。使用普通的用户名和密码可能是导致您出现问题的原因。


推荐阅读