2014-11-03 92 views
3

我想送使用Nodemailer和Gmail邮件,但它不工作...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: '[email protected]', 
 
    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:

enter image description here

+0

请参阅我编辑的答案以包含var smtpPool = require('nodemailer-smtp-pool'); – Ben 2014-11-03 14:57:14

+0

已经包含在我的代码中,但没有在帖子中... – tonymx227 2014-11-03 15:13:41

回答

2

您需要传递服务='gmail'和用户/密码:

var transporter = nodemailer.createTransport({ 
    service: 'Gmail', 
    auth: { 
    user: '[email protected]', 
    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: '[email protected]', 
    pass: <your password> 
    }, 
    maxConnections: 5, 
    maxMessages: 10 
})); 

编辑:

您可能需要“允许访问您的Google帐户”。使用浏览器登录到你的Gmail,然后去这个链接https://accounts.google.com/DisplayUnlockCaptcha解锁它。您可能需要使用刚刚登录的浏览器,以便Google知道您要授予哪个帐户的访问权限。点击“允许”按钮后,您应该看到以下消息:“启用帐户访问权限,请尝试从您的新设备或应用程序再次登录您的Google帐户。”

+0

无法与您的代码一起工作,请参阅上面的... – tonymx227 2014-11-03 14:55:53

+0

奇怪的是,我目前使用上述两种方法来服务我们的服务器,并且两者都在为我们工作。 – Ben 2014-11-03 22:56:40

+0

好吧,我不明白为什么密码不起作用...这是真实的密码... – tonymx227 2014-11-04 11:29:47