gmail api + nodemailer работал неделю go, теперь это не так - PullRequest
0 голосов
/ 03 августа 2020

Я создал приложение, которое позволяет мне отправлять из него электронные письма. Я использую 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, либо в одном / многих из задействованных пакетов. Буду признателен за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...