Я создал приложение, которое позволяет мне отправлять из него электронные письма. Я использую API Google OAuth2 и Gmail. Работает 7 месяцев без проблем. Сегодня перестал работать. Я все еще могу войти в систему, поэтому OAuth2 все еще работает. Но я больше не могу отправлять электронные письма с помощью nodemailer. Все, что я изменил, это то, что я обновил свои пакеты, что могло иметь какое-то отношение к этому.
router.post("/gmail/send/template", auth, async (req, res) => {
//for clarity, i've removed lots of the variable declarations & non-email related stuff.
const employeeEmail = employee.email;
try {
const oauth2Client = new OAuth2(
process.env.OAUTH_CLIENT,
process.env.OAUTH_SECRET,
process.env.REDIRECT_URI
);
oauth2Client.setCredentials({
refresh_token: refresh_token
});
const smtpTransport = nodemailer.createTransport({
service: "gmail",
tls: {
rejectUnauthorized: false
},
auth: {
type: "OAuth2",
clientId: process.env.OAUTH_CLIENT,
clientSecret: process.env.OAUTH_SECRET
}
});
let mailOptions = {
from: myEmail,
to: recipientEmail,
subject: xxxxxxxxxxxxx,
text: xxxxxxxxx,
auth: {
user: myEmail,
refreshToken: refresh_token,
expires: Date.now()
}
};
await smtpTransport.sendMail(mailOptions, async (err, result) => {
if (err) {
console.log("in sendmail err", { err });
return smtpTransport.close();
}
});
} catch (err) {
res.status(400).send(err);
}
});
Опять же, неделю go, этот код работал. Ничего не изменилось, поэтому я думаю, что это может быть связано с изменениями либо в gmail api, либо в одном / многих из задействованных пакетов. Буду признателен за помощь!