我有以下节点代码:
var nodemailer = require("nodemailer");
var xoauth2 = require('xoauth2');
/*
Here we are configuring our SMTP Server details.
STMP is mail server which is responsible for sending and recieving email.
*/
var smtpTransport = nodemailer.createTransport({
service: "Gmail",
host: "smtp.gmail.com",
auth: {
XOAuth2: {
user: "buckscountytourofhonor@gmail.com",
pass: "****",
clientId:"myclientidenteredhere",
clientSecret:"mysecretenteredhere",
refreshToken:"mytokenenteredhere"
}
}
});
module.exports = function(app, passport){
app.get('/send',function(req,res){
var mailOptions={
to : 'buckscountytourofhonor@gmail.com',
from: req.query.email,
subject : req.query.subject,
text : req.query.name +": "+req.query.message
}
console.log(mailOptions);
smtpTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
res.end("error");
}else{
console.log("Message sent: " + response.message);
res.end("sent");
}
});
});
我目前正在关注本教程。实际上遵循了许多人,但这是最简洁的。
我收到以下错误:
错误:无效登录:535-5.7.8不接受的用户名和密码
任何人都可以帮助我弄清楚我所缺少的东西,我花了3个小时的时间来研究这一点。
我似乎刚刚遇到了这个问题。我有一个较旧的实现,与Xoauth一起工作,这是另一个具有相同代码的应用程序,但最新的NodeMailer Install确实提供了
无效的登录:535-5.7.8不接受用户名和密码。
我从xoauth2出发了
var generator = require('xoauth2').createXOAuth2Generator({
user: 'xxx',
clientId: 'xxx',
clientSecret: 'xxx',
refreshToken: 'xxx'
});
和
var transporter = nodemailer.createTransport(({
service: 'gmail',
auth: {
xoauth2: generator
}
to
var transporter = nodemailer.createTransport(({
service: 'gmail',
auth: {
type: 'OAuth2',
user: 'xxx',
clientId: 'xxx',
clientSecret: 'xxx',
refreshToken: 'xxxx'
}
}));
那是为我工作的。不知道这是否是这样,但值得一试。我确实遵循了Gmail设定的同一教程,这确实在我较早的实施中起作用,并且再次与新项目一起使用。