Почему я должен использовать Nodemailer для отправки электронных писем?

Почему я должен использовать Nodemailer для отправки электронных писем?

8 мая 2022 г.

Создатели Nodemail говорят, что это делает отправку электронной почты просто куском пирога.


Давайте посмотрим, говорят ли они о готовке или еде 🙂 Идея этой статьи состоит в том, чтобы объяснить, как использовать Nodemailer для отправки электронной почты.


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


Как использовать Nodemailer


Установка


Единственное, что требуется, чтобы начать использовать Nodemailer, — это Node.js версии 6.0 или выше.


Вам также следует установить сам Nodemailer, но это очень легко сделать с помощью менеджера пакетов npm или Yarn. Выполните следующую команду в командной строке Node.js:


npm установить nodemailer



или



пряжа добавить nodemailer


После завершения включите его в свое приложение следующим образом:


var nodemailer = требуется('nodemailer');


или это, если вы используете модули ES:


импортировать nodemailer из ‘nodemailer’;


Отправка сообщений


Чтобы отправить сообщение с помощью Nodemailer, необходимо выполнить три основных шага.


Шаг 1. Создайте транспортер Nodemailer


SMTP — самый распространенный транспортер, и ниже мы опишем его более подробно, а также продемонстрируем несколько примеров. Но есть список других доступных вариантов:


  • Встроенные транспорты.

  • sendmail, обычная команда sendmail для простых сообщений. Это похоже на функцию mail() в PHP.

  • SES, чтобы обрабатывать большой трафик электронной почты, отправляя их с помощью Amazon SES.

  • поток, буфер для целей тестирования, для возврата сообщений.

  • Внешний транспорт. Проще говоря, вы можете создать свой собственный способ транспортировки.

Дополнительные сведения см. в документации Nodemailer.


С SMTP все довольно просто. Установите хост, порт, данные и метод аутентификации, и все.


На этом этапе также полезно проверить правильность SMTP-подключения: **добавьте проверку (обратный вызов) **вызов для проверки подключения и аутентификации.


```javascript


Transporter.verify (функция (ошибка, успех) {


если (ошибка) {


console.log(ошибка);


} еще {


console.log('Сервер готов принимать наши сообщения');


Как тестировать электронные письма в Nodemailer?


Чтобы протестировать электронные письма, отправленные с помощью Nodemailer, мы будем использовать Mailtrap, онлайн-инструмент для комплексного тестирования электронной почты в тестовой среде.


Быстро зарегистрируйтесь (это бесплатно), перейдите на вкладку Настройки SMTP в папке "Входящие", скопируйте необходимые настройки и вставьте их в скрипт своего приложения.


Mailtrap предлагает готовую интеграцию с Nodemailer; выберите его в разделе Интеграция и вставьте в код приложения. Он уже содержит атрибуты транспортера и синтаксиса:


```javascript


вар транспорт = nodemailer.createTransport({


хост: "smtp.mailtrap.io",


порт: 2525,


авторизация: {


пользователь: "1a2b3c4d5e6f7g", // создано Mailtrap


проход: "1a2b3c4d5e6f7g" // сгенерирован Mailtrap


В противном случае вы можете использовать автоматически сгенерированные тестовые учетные записи электронной почты на Ethereal, который также является поддельным SMTP-сервисом, в основном предназначенным для пользователей Nodemailer.


Недавно Nodemailer представил NodemailerApp. Он обеспечивает замену Sendmail, но в первую очередь предназначен для отладки электронных писем. NodemailerApp имеет локальные серверы SMTP и POP3, универсальный почтовый домен, а также возможности предварительного просмотра электронной почты.


Шаг 2. Установите параметры сообщения Nodemailer


На этом этапе мы должны указать отправителя, получателей сообщения и содержание нашего сообщения.


Помните, что поддерживается Unicode, поэтому вы также можете использовать смайлики!


Чтобы отправить текст в формате HTML, никаких дополнительных атрибутов не требуется, просто поместите текст HTML в сообщение с атрибутом HTML. Для расширенных шаблонов вы можете добавлять вложения и вставлять изображения. Давайте сначала рассмотрим этот пример простых параметров сообщения:


```javascript


вар mailOptions = {


from: '"Пример команды" from@example.com',


кому: 'user1@example.com, user2@example.com',


subject: 'Хороший тест Nodemailer',


text: 'Привет, это наше первое сообщение, отправленное с помощью Nodemailer ;) ',


html: 'Привет!
Это наше первое сообщение, отправленное с помощью Nodemailer'


Вложения в Nodemailer


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


  • имя файла: имя вложенного файла. Здесь вы также можете использовать Unicode.

  • содержание: тело вашего вложения. Это может быть строка, буфер или поток.

  • путь: путь к файлу для его потоковой передачи вместо включения в сообщение. Это хороший вариант для больших вложений.

  • href: URL вложения. URI данных также поддерживаются.

```javascript


список: {


// Список-помощь: admin@example.com?subject=help


помощь: 'admin@example.com?subject=help',


// Список-отписка: http://example.com (комментарий)


отписаться: [


URL: 'http://example.com/unsubscribe',


comment: 'Короткое примечание об этом URL'


'отписаться@example.com'


// Идентификатор списка: "comment"


я бы: {


URL: 'mylist.example.com',


комментарий: 'мой новый список'


Дополнительные свойства позволяют добавлять определенные типы контента или встроенные изображения.


contentType: если вы его не установите, он будет выведен из свойства имени файла.


```javascript


` // Массив вложений


вложения: [


// Строковое вложение


имя файла: 'notes.txt',


содержание: «новые важные заметки»,


contentType: 'text/plain' // необязательный, определяется по имени файла


`
CID: встроенные изображения в сообщении HTML. Подробнее о прикреплении изображений к электронным письмам в формате HTML читайте в этом посте. Обратите внимание, что значение CID должно быть уникальным.


```javascript


cid: 'note@example.com' // должен быть как можно более уникальным


// Вложение файлового потока


имя файла: 'matrix neo.gif',


путь: __dirname + '/assets/neo.gif',


cid: 'neo@example.com' // должен быть как можно более уникальным


Кодировка: можно добавить к строковому типу контента. Он будет кодировать содержимое в тип буфера в соответствии с установленным вами значением кодировки (base64, двоичный файл и т. д.).


```javascript


` // Прикрепление двоичного буфера


имя файла: 'image.png',


содержимое: Buffer.from(


'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAABlBMVEUAAAD/' +


'//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U' +


'g9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC',


'base64'


Шаг 3. Доставьте сообщение с помощью sendMail()


Создав транспортер и настроив сообщение, мы можем отправить его с помощью *sendMail()*метода:


```javascript


transport.sendMail(mailOptions, (ошибка, информация) => {


если (ошибка) {


вернуть console.log(ошибка);


console.log('Сообщение отправлено: %s', info.messageId);


Возможности Nodemailer


Мы рассмотрели информацию о том, как создать и отправить электронное письмо в Nodemailer через SMTP, поэкспериментировав с различными типами контента: HTML, таблицами, списками, вложениями и встроенными изображениями. Что хорошо в Nodemailer, так это то, что он предлагает множество различных опций и настроек, поэтому вы можете настроить каждую часть своей электронной почты.


Ранее опубликовано здесь



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE