Как создать переопределяемый шаблон для nodemailer без дополнительных инструментов?

Для создания переопределяемого шаблона для отправки электронных писем с помощью Nodemailer без использования дополнительных инструментов, вы можете использовать шаблонизаторы JavaScript, такие как EJS или Mustache.

Первым шагом является установка необходимых модулей. Выполните следующую команду в терминале, чтобы установить модули Nodemailer и шаблонизатор EJS:

npm install nodemailer ejs

Затем создайте новый файл с именем emailTemplate.ejs, который будет содержать ваш шаблон:

<html>
  <head>
    <title><%= subject %></title>
  </head>
  <body>
    <h1><%= title %></h1>
    <p><%= message %></p>
  </body>
</html>

В этом примере мы используем шаблон EJS для создания HTML-структуры электронного письма. Можете настроить шаблон на ваше усмотрение, добавив необходимую логику и содержание.

Далее, в вашем файле Node.js, добавьте следующий код для отправки письма с использованием созданного шаблона:

const nodemailer = require('nodemailer');
const ejs = require('ejs');
const fs = require('fs');

// Чтение шаблона из файла
const template = fs.readFileSync('emailTemplate.ejs', 'utf-8');

// Создание функции для рендеринга шаблона
const renderEmailTemplate = ejs.compile(template);

// Настройка Nodemailer транспортера
const transporter = nodemailer.createTransport({
  host: 'smtp.example.com',
  port: 587,
  secure: false,
  auth: {
    user: '[email protected]',
    pass: 'your_password'
  }
});

// Опции письма
const mailOptions = {
  from: '[email protected]',
  to: '[email protected]',
  subject: 'Hello from Nodemailer',
  html: renderEmailTemplate({
    title: 'Welcome to our mailing list!',
    message: 'Thank you for subscribing.'
  })
};

// Отправка письма
transporter.sendMail(mailOptions, (error, info) => {
  if (error) {
    console.log(error);
  } else {
    console.log('Email sent: ' + info.response);
  }
});

Обратите внимание, что вы должны заменить значения host, port, user и pass соответствующими данными для вашего SMTP-сервера электронной почты.

Вышеуказанный код настраивает Nodemailer для отправки письма, компилирует шаблон с помощью EJS и заполняет его данными, указанными в mailOptions.html. Затем он отправляет письмо и выводит результат в консоль.