Как отправить электронное письмо SendGrid с помощью динамического шаблона в Node.js

Чтобы отправлять электронные письма SendGrid с динамическими шаблонами в Node.js, вы можете использовать несколько методов. Ниже я объясню два распространенных подхода:

Метод 1: использование библиотеки SendGrid Node.js

  1. Установите библиотеку SendGrid, выполнив следующую команду в проекте Node.js:

    npm install @sendgrid/mail
  2. Требовать библиотеку в своем коде:

    const sgMail = require('@sendgrid/mail');
  3. Установите ключ API SendGrid:

    sgMail.setApiKey('YOUR_SENDGRID_API_KEY');
  4. Создайте динамический шаблон с помощью редактора шаблонов SendGrid или API.

  5. Отправить электронное письмо, используя динамический шаблон:

    const msg = {
     to: 'recipient@example.com',
     from: 'sender@example.com',
     templateId: 'YOUR_TEMPLATE_ID',
     dynamicTemplateData: {
       subject: 'Hello, World!',
       name: 'John Doe',
       // Add other dynamic data here
     },
    };
    sgMail.send(msg)
     .then(() => console.log('Email sent'))
     .catch((error) => console.error(error));

Метод 2. Использование REST API SendGrid

  1. Создайте динамический шаблон с помощью редактора шаблонов SendGrid или API.

  2. Отправьте запрос HTTP POST к конечной точке API SendGrid, чтобы отправить электронное письмо с использованием динамического шаблона. Вы можете использовать такие библиотеки, как axiosили встроенный модуль httpsв Node.js.

    Вот пример использования axios:

    const axios = require('axios');
    const data = {
     personalizations: [
       {
         to: [{ email: 'recipient@example.com' }],
         dynamic_template_data: {
           subject: 'Hello, World!',
           name: 'John Doe',
           // Add other dynamic data here
         },
       },
     ],
     from: { email: 'sender@example.com' },
     template_id: 'YOUR_TEMPLATE_ID',
    };
    axios.post('https://api.sendgrid.com/v3/mail/send', data, {
     headers: {
       'Content-Type': 'application/json',
       Authorization: `Bearer YOUR_SENDGRID_API_KEY`,
     },
    })
     .then(() => console.log('Email sent'))
     .catch((error) => console.error(error));

Обратите внимание, что в обоих методах вам необходимо заменить 'YOUR_SENDGRID_API_KEY'на ваш фактический ключ API SendGrid и 'YOUR_TEMPLATE_ID'на идентификатор вашего динамического шаблона.