2017-03-01 18 views
0

我有以下节点代码:nodemailer与XOauth2设置表示不正确的凭据

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: "[email protected]", 
      pass: "****", 
      clientId:"myclientidenteredhere", 
      clientSecret:"mysecretenteredhere", 
      refreshToken:"mytokenenteredhere" 
     } 

    } 
}); 
module.exports = function(app, passport){ 

    app.get('/send',function(req,res){ 
     var mailOptions={ 
      to : '[email protected]', 
      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"); 
      } 
     }); 
    }); 

我目前以下this教程。其实跟着很多,但这是最简洁的。

我收到以下错误:

Error: invalid login: 535-5.7.8 username and password not accepted

谁能帮我找出我缺少什么,我已经花费超过3小时研究这个。

回答

2

我似乎刚刚面对这个问题。我有一个旧的执行工作只是XOAUTH精,另一个应用程序使用相同的代码,但更近nodemailer安装便从

Invalid login: 535-5.7.8 Username and Password not accepted.

我从xoauth2去像这样

var generator = require('xoauth2').createXOAuth2Generator({ 
           user: 'xxx', 
           clientId: 'xxx', 
           clientSecret: 'xxx', 
           refreshToken: 'xxx' 
          }); 

var transporter = nodemailer.createTransport(({ 
           service: 'gmail', 
           auth: { 
            xoauth2: generator 
           } 

var transporter = nodemailer.createTransport(({ 
           service: 'gmail', 
           auth: { 
            type: 'OAuth2', 
            user: 'xxx', 
            clientId: 'xxx', 
            clientSecret: 'xxx', 
            refreshToken: 'xxxx' 
           } 
          })); 

这对我来说很有用。不知道这是否值得一试。我确实遵循了Gmail设置的相同教程,这在我以前的实施中起作用,并且再次用于新项目。