用户名和密码在使用nodemailer时不被接受?

这是我的settingController:

var sendSmtpMail = function (req,res) { var transport = nodemailer.createTransport({ service:'gmail', auth: { user: "asdfqweerrccb@limitlesscircle.com", pass: "qwerr@wee" } }); var mailOptions = { from: "transactions@limitlesscircle.com", to:'umaraja1124@gmail.com', subject: req.body.subject+"nodejs working ?", text: "Hello world ?", } transport.sendMail(mailOptions, function(error, response){ if(error){ res.send("Email could not sent due to error: "+error); console.log('Error'); }else{ res.send("Email has been sent successfully"); console.log('mail sent'); } }); 

在邮递员我得到了这样的错误:

电子邮件无法发送,因为错误:

 Error: Invalid login: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials g7sm64435626pfj.29 - gsmtp 

我认为首先你需要允许安全性较低的应用程序访问你的谷歌帐户中的帐户设置 – 默认情况下,这个设置是closures的 ,你只需打开它。

然后,我使用以下脚本从Gmail帐户发送电子邮件,也用雅虎帐户进行testing。

 const nodemailer = require('nodemailer'); let transporter = nodemailer.createTransport({ host: 'smtp.gmail.com', port: 587, secure: false, requireTLS: true, auth: { user: 'your.gmail.account@gmail.com', pass: 'your.password' } }); let mailOptions = { from: 'your.gmail.account@gmail.com', to: 'receivers.email@domain.com', subject: 'Test', text: 'Hello World!' }; transporter.sendMail(mailOptions, (error, info) => { if (error) { return console.log(error.message); } console.log('success'); }); 

例如,如果你把前面的代码放在send-email.js中,打开terminal并写:

 node send-email 

你应该看到在控制台 – 成功 ,如果电子邮件发送成功或错误信息由nodemailer返回

不要忘记首先进行设置 – 允许安全性较低的应用程序访问帐户

我希望这个代码对你有用。 祝你好运!

您正在使用Gmail服务,所以您的邮件必须在Gmail中:

 var transport = nodemailer.createTransport({ service:'gmail', auth: { user: "asdfqweerrccb@gmail.com", pass: "qwerr@wee" } }); var mailOptions = { from: "transactions@gmail.com", to:'umaraja1124@gmail.com', subject: req.body.subject+"nodejs working ?", text: "Hello world ?", } transport.sendMail(mailOptions, function(error, response){ if(error){ res.send("Email could not sent due to error: "+error); console.log('Error'); }else{ res.send("Email has been sent successfully"); console.log('mail sent'); } });