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

时间:2016-04-25 19:51:42

标签: node.js nodemailer

我有一段简单的代码无法按预期工作。我正在使用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 :(得分:1)

对于gmail服务,我使用:

'*the-nothing*

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

答案 1 :(得分:0)

您可以查看错误消息。

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

因为在您的示例代码中,即使节点制作者返回有效错误,它仍会打印消息已发送

有些时候邮件可以排队或在mailOptions中说出任何类型的错误,邮件无法传递。

答案 2 :(得分: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
         }
});