Изучение Nodemailer и Handlebars: полное руководство по отправке динамических писем

В этой статье блога мы рассмотрим мощную комбинацию Nodemailer и Handlebars, двух популярных инструментов в экосистеме Node.js. Мы научимся использовать Nodemailer для отправки электронных писем и использовать Handlebars для создания динамических шаблонов электронной почты. К концу вы получите четкое представление о том, как отправлять персонализированные и привлекательные электронные письма с помощью этих технологий.

  1. Настройка Nodemailer:
    Чтобы начать, давайте установим пакет Nodemailer с помощью npm:

    npm install nodemailer
  2. Настройка Nodemailer:
    Далее нам нужно настроить Nodemailer с использованием учетных данных поставщика услуг электронной почты. Вот пример использования SMTP-сервера Gmail:

    const nodemailer = require('nodemailer');
    // Create a transporter
    const transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
    user: 'your-email@gmail.com',
    pass: 'your-password'
    }
    });
  3. Создание шаблона Handlebars:
    Handlebars позволяет нам создавать динамические шаблоны электронных писем с заполнителями для переменных. Вот пример:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to our Newsletter!</title>
    </head>
    <body>
    <h1>Hello, {{name}}!</h1>
    <p>Thanks for subscribing to our newsletter. We're excited to have you on board.</p>
    </body>
    </html>
  4. Визуализация шаблона Handlebars:
    Мы можем использовать Handlebars для визуализации шаблона с динамическими данными. Вот пример отрисовки шаблона с помощью переменной имени:

    const handlebars = require('handlebars');
    const fs = require('fs');
    // Read the template file
    const templateSource = fs.readFileSync('path/to/template.hbs', 'utf8');
    // Compile the template
    const template = handlebars.compile(templateSource);
    // Render the template with data
    const renderedTemplate = template({ name: 'John Doe' });
  5. Отправка электронной почты с помощью Nodemailer:
    Наконец, мы можем использовать Nodemailer для отправки электронной почты с помощью визуализированного шаблона:

    const mailOptions = {
    from: 'your-email@gmail.com',
    to: 'recipient@example.com',
    subject: 'Welcome to our Newsletter',
    html: renderedTemplate
    };
    // Send the email
    transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
    console.error(error);
    } else {
    console.log('Email sent:', info.response);
    }
    });

В этой статье мы изучили библиотеки Nodemailer и Handlebars и узнали, как отправлять динамические электронные письма с помощью Node.js. Мы рассмотрели настройку Nodemailer, создание шаблонов Handlebars, их обработку данными и отправку электронных писем. Объединив возможности Nodemailer и Handlebars, вы сможете создавать персонализированные и привлекательные электронные письма для своих пользователей, повышая их удобство работы с вашим приложением.