Для создания переопределяемого шаблона для отправки электронных писем с помощью 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
. Затем он отправляет письмо и выводит результат в консоль.