Отправка массовых писем в Node.js с использованием SendGrid API

Опубликовано: 5 Августа, 2021

Что такое SendGrid API?
SendGrid - это платформа для отправки клиентам транзакционных и маркетинговых писем. Он обеспечивает масштабируемость, надежность и доставляемость, что является важным вопросом для организации.
Преимущества использования SendGrid API:

  • Если вы используете Nodemailer с Gmail, вы можете отправлять только определенное количество писем в день .
  • Кроме того, нет необходимости настраивать собственный SMTP-сервер .
  • SMTP не обеспечивает возможности доставки , т.е. электронная почта может или не может быть отправлена.

Шаги по отправке писем с использованием API SendGrid:

  1. Настройка ключа API:
    • Перейдите в панель управления sendgrid и нажмите кнопку создания ключа API .
    • Назовите API-ключ как хотите, в этом руководстве мы назовем его node-mail.

      Скопируйте API-ключ, так как из соображений безопасности вы не сможете его снова увидеть.

  2. Настройка приложения node.js:
    • Создайте пустой пакет NPM с помощью команды. ( Переданный флаг - y используется для использования значений по умолчанию в генераторе вместо того, чтобы задавать вопросы)
       npm init -y
    • Создайте файл с именем index.js и добавьте код шаблона.

      index.js




      // Importing http library
      const http = require( "http" );
      const PORT = 3000; // Defining PORT
      http.createServer((req, res) => {
      // Output Hello World on HTML page
      res.write( "<h1>Hello World!</h1>" );
      res.end();
      })
      // Initializing server
      .listen(PORT,() => console.log(`Server running on PORT : ${PORT}`));
    • Теперь запустите код с помощью команды индекса узла и перейдите по ссылке 127.0.0.1:3000. Вы увидите результат.
    • И в консоли

  3. Установка библиотеки SendGrid: Установите библиотеку SendGrid , выполнив следующую команду
     нпм я @ sendgrid / mail
  4. Отправка писем с использованием библиотеки:

    javascript




    const http = require( "http" );
    const PORT = 3000;
    http.createServer((req, res) => {
    // Initializing sendgrid object
    const mailer = require( "@sendgrid/mail" );
    // Insert your API key here
    mailer.setApiKey( "<your-api-key>" );
    // Setting configurations
    const msg = {
    to: [ "youremail@gmail.com" , "your.second.email@gmail.com" ],
    from: "noreply@example.com" ,
    subject: "Message sent for demo purpose" ,
    html:
    "<h1>New message from Geeksforgeeks</h1>
    <p>Some demo text from geeksforgeeks.</p>
    "
    };
    // Sending mail
    mailer.send(msg, function (err, json) {
    if (err) {
    console.log(err);
    // Writing error message
    res.write( "Can't send message sent" );
    } else {
    // Writing success message
    res.write( "Message sent" );
    }
    });
    res.end();
    })
    .listen(PORT, () => console.log(`Server running on PORT : ${PORT}`));

Теперь снова запустите приложение, используя индекс узла, перейдите к 127.0.0.1:3000 в браузере и проверьте оба своих электронных письма, вы увидите результат, как показано ниже.