1
我目前有一個安裝程序可以使用gmail中的nodemailer發送電子郵件。當我手動創建一個訪問令牌(它只持續〜1小時)時,它工作正常。然而,在那個小時過後,我得到了下面的錯誤。請注意,在那個小時內,我可以發送電子郵件,並且一切正常。試圖使用nodemailer使用Gmail發送電子郵件,並收到錯誤:「無法爲用戶創建新的訪問令牌」
{ Error: Can't create new access token for user
at XOAuth2.generateToken (C:\Users\user\My-Projects\***\node_modules\nodemailer\lib\xoauth2\index.js:162:33)
at XOAuth2.getToken (C:\Users\user\My-Projects\***\node_modules\nodemailer\lib\xoauth2\index.js:111:18)
at SMTPConnection._handleXOauth2Token (C:\Users\user\My-Projects\***\node_modules\nodemailer\lib\smtp-connection\index.js:1421:27)
at Immediate.setImmediate (C:\Users\user\My-Projects\***\node_modules\nodemailer\lib\smtp-connection\index.js:1239:45)
at runCallback (timers.js:666:20)
at tryOnImmediate (timers.js:639:5)
at processImmediate [as _immediateCallback] (timers.js:611:5) code: 'EAUTH', command: 'AUTH XOAUTH2' }
我用來發送電子郵件的代碼是:
var emailMsg = `Name: ${name}\nEmail: ${email}\n\nMessage:\n${msg}`;
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
type: 'OAuth2',
user: process.env.GMAIL_ACC,
clientId: process.env.GMAIL_CLIENTID,
clientSecret: process.env.GMAIL_CLIENTSECRET,
refreshToken: process.env.GMAIL_RFRESHTOKEN,
accessToken: process.env.GMAIL_ACCESSTOKEN
}
});
var mailOptions = {
from: process.env.GMAIL_ACC,
to: process.env.GMAIL_ACC,
subject: `Contact Form - ${name}`,
text: emailMsg
};
transporter.sendMail(mailOptions,
function(mailErr, mailRes) {
if(mailErr) {
//Mail was unable to send
sendResponse(418, false, [{'email': 'Server was unable to send email.'}]);
console.log('Mail Error:\n ', mailErr);
} else {
//Everything worked correctly. (As far as responses go)
sendResponse(200, true);
}
}
);
事情我已經嘗試: - 允許不夠安全的應用(似乎不具有任何影響) - 禁用防病毒軟件(這原本是一個無關的問題) - 創建一個新的應用程序和一套令牌(這有0影響)
任何幫助,將不勝感激,謝謝!
是的,謝謝!似乎我沒有像我以前那樣複製和粘貼。 –