Javascript 错误:缺少“的凭据”;“登录”;使用nodeEmailer发送邮件时

Javascript 错误:缺少“的凭据”;“登录”;使用nodeEmailer发送邮件时,javascript,node.js,express,outlook,nodemailer,Javascript,Node.js,Express,Outlook,Nodemailer,我尝试使用outlook中的nodemailer发送邮件之前我可以发送邮件,但现在出现错误:缺少“登录”凭据。如何使用oauth2和NodeEmailer发送邮件,以及我缺少的内容。我在这里被困了两天,但没有找到任何解决办法。任何帮助都将被告知 let transporter = await nodemailer.createTransport({ // service: 'outlook', host: 'smtp-mail.outlook.com', port: 58

我尝试使用outlook中的nodemailer发送邮件之前我可以发送邮件,但现在出现错误:缺少“登录”凭据。如何使用oauth2和NodeEmailer发送邮件,以及我缺少的内容。我在这里被困了两天,但没有找到任何解决办法。任何帮助都将被告知

let transporter = await nodemailer.createTransport({
    // service: 'outlook',
    host: 'smtp-mail.outlook.com',
    port: 587, // port for secure SMTP
    secureConnection: false,
    requireTLC: true,
    tls: {
        rejectUnauthorized: false,
        ciphers: 'SSLv3'
    },
    auth: {
        xoauth2: xoauth2.createXOAuth2Generator({
            type: 'OAuth2',
            user: 'mail@outlook.com',
            clientId: '',
            clientSecret: '',
            refreshToken:'M.R3_BAY.CQMXmItv1GJSIkDgQUsi4Tvlj51b6xU3hxrLgCwiSzNKgs*uPiDh4778Hd4XOEgu!RnNVlNmmDw2x19jbgXF4Zo3kBRlL6ZdwvfMSzpGTYCKjsItAL1DW8Hl3gNAOkPPy2Iun43nbo8ukdTw!pjowAuUg5KcqyfRUkKRegEPdJBQlC4BbOb3w*7Pbe54HcW5KYBPh6YwWNEOlzq9T7bVTFU10FbPGgg9R5JCnyZ1bkohxaZKnVVCrqIDJsJ3Qu6cQFE!hZmIB7or9PJaYuYATzPzrXLz9E*sOVa0*Hs81ycrQ*Ct8SKKGbp6TIF!iB51F10T7gCl9sxpfmTR*zOgbPUVWt!TaaLYq*7dBDqEtkfEnf!Kc3LyrNPcW2P6jd5tEDXhwbM8obk5nKKPIUUVXMAZHJry0eSl3oc4Fo4hc0p2tyz2RBH2lAieKUvpRxu6dw6jZVVgwt5fA9hCurQG7qYJos43Nz!lqcVgthno8tHCJNf59bSo$',
            accessToken: 'EwAoA+l3BAAU0+FyEzrGK6gRIXxWPxCw8ZPo0GUAAXRAfBNAuAlexm66g739z6zUJgUD7BgCPsoxBcADGKDTBdVItgyWNiE+M4rhQO8sEpjMncD2NPWLyDqJv0JrJBzCeWDqeIBcERnhnxPKfZwzyA3DLUOVNCOoheMRf8eIGxBt+kSfsR15qydLRRSKKttJozycRSMhl+mdwlowVLAj2gu1FOuPMgYswQB4fCkgX0GKCnoZyy+UqJFsHmm+CaGiw6cA9m72qWhdHXbZKXy765D14pdkBnTiTrbIN2pkH+EpIo7MXh+Tv2IFCjAiv88dCMQDtyuz/NBLNp7mIQLrAqZQ9irgZDfqzN5QP4QDcDGBFF8to7anbD+X4Va89pADZgAACN4zRbeiqiLU+AEDGzPPdmAVCIshp9XLvhIb89pfjaopC5SbBLO+jchbBxX9AxR1bld5fePr+Zcelz2a1ynNeb/Q7WNKeHvAvVh1ZnqyUkykKMOn35rXSwkx9kIB/MYR/gojJCVblvPVg3wtpxH5HmAS5MythBdzTT1cpbUsTgGAEjY0ndU8z6XD4YaB7L4XLfrE+0IPbedQX5wW1tqdU6DEm/UZ39oaAWll18ROZDqSPPOyUgccq9IQjB+veHZpa+zh1f4/389ainQZLcAnEi4F4ZHCjb8kIUP9upt0jxwgbJFPo1h/Enk2DWdxRDHGwHSp1tKy1Thw/m8hymEnxl1Bn/J+/z1AVfCKkeeCUZxb08p4y5CqfEgIa1sKp8BMfFq+Y5MxWWRfrmewUJxEgJDWMPgkyOkSU4Z3Xx30QXMkyS7aysqLTjL8YD61/RPsFAYn1AztZ0jt6hRo5kc41U+TkBfm2JpBrBBa0I8Mu3c/gRQ7IaxiEXKb0qeFuJCi8USkQ+zYXLQxmSdkVW6kearpZlY1VqbX1D7WV8q6UOjmuGA+yNzS8PWbEOTwP89ra2Hkhtli0hpVMESx2qBHU1FkEnuNxognfvUL7VDYYnc8XGPhZ0c/MQFsgy='
        })
    }
});

ejs.renderFile(__dirname + "/views/pages/temp.ejs", { data: data }, function (err, data) {
    if (err) {
        console.log(err);
    } else {
        var mailOptions = {
            from: body.email,
            to: body.to,
            subject: body.subject,
            text: ``,
            html: data
        };
        transporter.sendMail(mailOptions, function (error, info) {
            if (error) {
                console.log(error);
            } else {
                console.log('Email sent: ' + info.response);
            }
        });
    };
})