gpt4 book ai didi

node.js - 使用 GMail SMTP OAuth2 身份验证的 Nodemailer 正在获取 'Invalid status code 401'

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:54 24 4
gpt4 key购买 nike

我正在尝试使用 Nodemailer 3(带有 OAuth2 身份验证的 GMail API)创建一个简单的邮件发送器。

这是我的脚本:

var serverConfig  = {
gmail: {
client_user : 'my@email.com',
client_id : '349...myClientId',
secret : 'mysecret..123jd123',
refresh_token : 'x/xxxxxxxxxxxxxx-reZuEMeSuJaSERmCVY',
access_token : 'xxxxxxxxxxxxxxxxx',
expires: '3599'
}
}

// 3LO authentication https://nodemailer.com/smtp/oauth2/#example-3
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
type: 'OAuth2',
user: serverConfig.gmail.client_user,
clientId: serverConfig.gmail.client_id,
clientSecret: serverConfig.gmail.secret,
refreshToken: serverConfig.gmail.refresh_token
},
});

module.exports = {
"send": function(_from,_to,_subject,_html,_text){
// setup email data with unicode symbols
var mailOptions = {
from: _from,
to: _to, // list of receivers
subject: _subject, // Subject line
html: _html, // html body
text: _text // plain text body
};

transporter.sendMail(mailOptions, function(error, info){
if (error) {
return console.log(error);
}
console.log('Message ' + info.messageId + ' sent: %s' + info.response);
})
}


}

当我在 auth 对象中强制使用 access_token 时,电子邮件发送没有任何问题。但是,当我不指定 access_token,仅指定 refresh_token 时,我收到此错误:

{ Error: Invalid status code 401
at ClientRequest.req.on.res (/myproject/node_modules/nodemailer/lib/fetch/index.js:193:23)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:188:7)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:474:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
at TLSSocket.socketOnData (_http_client.js:363:20)
at emitOne (events.js:96:13)
at TLSSocket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at TLSSocket.Readable.push (_stream_readable.js:134:10)
type: 'FETCH',
sourceUrl: 'https://accounts.google.com/o/oauth2/token',
code: 'EAUTH',
command: 'AUTH XOAUTH2' }

最佳答案

也许已经太晚了,但只是在这里回答,以防有人遇到同样的问题。重置刷新 token 后,我的问题得到了解决。 This article对整个过程给出了很好的指导

关于node.js - 使用 GMail SMTP OAuth2 身份验证的 Nodemailer 正在获取 'Invalid status code 401',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42722201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com