Express 使用NodeEmailer设置oauth2时出现问题
我正在用react、express和NodeEmailer构建邮件表单,我遇到了一个问题。 如何设置oauth2?我有一些 错误:授权无效 这是我的代码:Express 使用NodeEmailer设置oauth2时出现问题,express,oauth-2.0,smtp,nodemailer,mail-form,Express,Oauth 2.0,Smtp,Nodemailer,Mail Form,我正在用react、express和NodeEmailer构建邮件表单,我遇到了一个问题。 如何设置oauth2?我有一些 错误:授权无效 这是我的代码: async function main2() { const output = `Some output text...`; // create reusable transporter object using the default SMTP transport let transport
async function main2() {
const output = `Some output text...`;
// create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
host: 'mail.google.com',
port: 465,
secure: true, // true for 465, false for other ports
auth: {
type: 'OAuth2',
clientId: 'clientID here',
clientSecret: 'clientSecret here',
refreshToken: 'refreshToken here',
accessToken: 'accessToken here',
expires: number
},
tls: {
rejectUnauthorized: false
}
});
// send mail with defined transport object
let info = await transporter.sendMail({
to: {
name: 'Me',
address: `${req.body.email}`
},
auth: {
user: 'mymail@gmail.com',
},
subject: 'Hello',
html: output // html body
});
console.log('Message sent: %s', info.messageId);
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
// Message sent to:...
console.log(`Message sent to: ${req.body.email}`)
// Preview only available when sending through an Ethereal account
console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
// Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
}
main2().catch(console.error);
})
你能解决这个问题吗?
{ Error: invalid_grant
at postRequest (path/node_modules/nodemailer/lib/xoauth2/index.js:259:33)
at PassThrough.req.once (path/node_modules/nodemailer/lib/xoauth2/index.js:328:20)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:111:20)
at PassThrough.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1064:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9) code: 'EAUTH', command: 'AUTH XOAUTH2' }