【问题标题】:sending email via nodemailer not working通过nodemailer发送电子邮件不起作用
【发布时间】:2016-04-25 19:51:41
【问题描述】:

我有一段简单的代码没有按预期工作。我正在使用 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!');
});

我在控制台中收到消息。但收件箱中没有电子邮件。

【问题讨论】:

  • 检查您的垃圾邮件文件夹
  • @admix,垃圾邮件文件夹中也没有任何内容。

标签: node.js nodemailer


【解决方案1】:

对于 gmail 服务,我使用这个:

const smtpTransport = require('nodemailer-smtp-transport')
const nodemailer = require('nodemailer')

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

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

【讨论】:

  • @jaumard...那没用。我已经更改了设置。
  • 禁用您的防病毒软件并尝试一下。我能做到
【解决方案2】:

找到这个 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
         }
});

【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-05-16
      • 2021-08-14
      • 1970-01-01
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 1970-01-01
      相关资源
      最近更新 更多