Код по этой
ссылке и не будет работать, код там не полный, это вершина айсберга, он возможно работал - раньше, сейчас если я не ошибаюсь то вся эта тема с nodemailer идёт через гугл, а в гугле куча мозготрёпки. Недавно я возился с этим nodemailer, пол дня ушло на то что бы настроить рассылку сообщение, могу лишь дать подсказку о том как делал я:
Я nodemailer юзал в связке с
googleapis
Нужно как минимим регаться будет в гугле, создать там приложение для рассылки, связать 2 пакета nodemailer и googleapis на бэке, прокинуть в них нужны данные, например clientId - при создании приложения для рассылок - этот айдишник выдает приложение, так же где-то там взять client_secret и ещё возможно какие-то манипуляции о которых я даже и сам не помню, хотя недавно делал, в итоге должно быть что-то типа этого.
const nodemailer = require("nodemailer");
const { google } = require("googleapis");
const OAuth2 = google.auth.OAuth2;
const OAuth2_client = new OAuth2(clientId, client_secret);
OAuth2_client.setCredentials({ refresh_token: refresGoogleToken });
class MailService {
static async sendActivationMail(to, activationLink) {
const accessToken = await OAuth2_client.getAccessToken();
const transporter = nodemailer.createTransport({
service: "gmail",
secure: false,
auth: {
type: "OAuth2",
user: email,
clientId: clientId,
clientSecret: client_secret,
refreshToken: refresGoogleToken,
accessToken: accessToken,
},
tls: {
rejectUnauthorized: false,
},
});
await transporter.sendMail({
from: email,
to,
// и тут ниже остальная логика по созданию содержимого сообщения для почты, тут ничего ниже особенного нет