3

我想使用 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:

在此处输入图像描述

4

1 回答 1

4

您需要传入 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 帐户。”

于 2014-11-03T14:37:22.000 回答