首页 文章

通过nodemailer发送电子邮件不起作用

提问于
浏览
0

我有一段简单的代码,没有按预期工作 . 我正在使用nodemailer .

var nodemailer = require('nodemailer');

var smtpTransport = nodemailer.createTransport('SMTP', {
  service: 'Gmail',
  auth: {
    user: 'personal gmail address',
    pass: 'password'
  }
});

var mailOptions = {
    from: 'personal gmail address',
    to: 'personal gmail address',
    subject: 'Hello world!',
    text: 'Plaintext message example.'
};

smtpTransport.sendMail(mailOptions, function(err) {
  console.log('Message sent!');
});

我收到了在控制台发送的消息 . 但收件箱中没有电子邮件 .

3 回答

  • 0

    对于gmail服务我使用这个:

    const smtpTransport = require('nodemailer-smtp-transport')
    const nodemailer = require('nodemailer')
    
    const transport = nodemailer.createTransport(smtpTransport({
      service: 'gmail',
      auth: {
        user: 'email',
        pass: 'pass'
      }
    }))
    

    但是您需要在您的Gmail帐户上允许不太安全的身份验证,否则不会发送电子邮件 . 我认为步骤是:

  • 1

    你能检查一下错误信息吗?

    ...
    smtpTransport.sendMail(mailOptions, function(err) {
      if(err)
      {
        console.log(err);
      }
      else
      {
        console.log('Message sent!');
      }
    });
    

    因为在您的示例代码中,即使nodemailer返回有效错误,它仍将打印 Message Sent

    有时消息可以排队或在mailOptions中说出任何类型的错误,消息无法传递 .

  • 0

    发现这个SO:self signed certificate in certificate chain error in mail . 我需要添加它,它对我有用 .

    let transporter = nodemailer.createTransport({
        service: 'gmail',
        auth: {
               user: 'myemail@gmail.com', 
               pass: 'password' 
              },
        tls: {
                rejectUnauthorized: false
             }
    });
    

相关问题