【问题标题】:Nodemailer and GmailNodemailer 和 Gmail
【发布时间】:2014-11-03 13:55:04
【问题描述】:

我想使用 Nodemailer 和 GMAIL 发送电子邮件,但它不起作用...

编辑#1:

代码:

var transporter = nodemailer.createTransport(smtpPool({
  service: 'gmail',
  auth: {
    user: '***@gmail.com',
    pass: '***'
  },
  maxConnections: 5,
  maxMessages: 10
}));

var mailOptions = {
  from: mail, // sender address
  to: 'infoprintwithlove@gmail.com',
  subject: subject,
  text: message,
  html: message
};

transporter.sendMail(mailOptions, function(error, info){
  if(error){
    console.log(error);
  }else{
    request.flash('success', 'Votre message à bien été envoyé.');
    response.redirect('/contacter-printwithlove');
  }
});

错误:

{ [Error: Invalid login]
     code: 'EAUTH',

似乎密码不正确,但在 Gmail 网页界面上我的密码可以正常使用...

编辑#2:

【问题讨论】:

  • 请查看我编辑的答案以包含 var smtpPool = require('nodemailer-smtp-pool');
  • 已包含在我的代码中,但不在帖子中...

标签: node.js gmail nodemailer


【解决方案1】:

您需要传入 service = 'gmail' 和用户/密码:

var transporter = nodemailer.createTransport({
  service: 'Gmail',
  auth: {
    user: 'myemail@gmail.com',
    pass: <your password>
  }
});

// Or using SMTP Pool if you need to send a large amount of emails
var smtpPool = require('nodemailer-smtp-pool');
var transporter = nodemailer.createTransport(smtpPool({
  service: 'gmail',
  auth: {
    user: 'myemail@gmail.com',
    pass: <your password>
  },
  maxConnections: 5,
  maxMessages: 10
}));

编辑:

您可能需要“允许访问您的 Google 帐户”。使用浏览器登录您的 gmail,然后转到此链接 https://accounts.google.com/DisplayUnlockCaptcha 将其解锁。您可能需要使用刚刚登录的同一浏览器,以便 google 知道您要授予哪个帐户访问权限。单击“允许”按钮后,您应该会看到消息:“帐户访问已启用。请尝试从您的新设备或应用程序重新登录您的 Google 帐户。”

【讨论】:

  • 奇怪,我目前正在为我们的服务器使用上述两种方法,并且都适用于我们。
  • 好吧,我不明白为什么密码不起作用...这是真正的密码...
  • 请在底部查看我编辑的答案以允许电子邮件帐户访问
  • 即使在成功完成“允许访问您的 Google 帐户”步骤之后?
  • 从谷歌支持页面尝试这些步骤:support.google.com/mail/answer/78754?hl=en
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-21
  • 2018-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多