2017-03-01 17 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設置的相同教程,這在我以前的實施中起作用,並且再次用於新項目。