Показываем как отправить Email с помощью Node.js и TypeScript
Отправляем письма на Node.js и TypeScript с помощью SMTP Google и Яндекса.
Установка Nodemailer
Автор статьи надеется, что TypeScript проект у Вас уже инициализирован, если нет, то подготовьте среду разработки самостоятельно. Автор использует Nitro в качестве сервера и Node.js 18.16.0.
Отправлять письма мы будем с помощью библиотеки Nodemailer. Давайте ее установим:
npm install nodemailer
И раз мы используем TypeScript, то не забываем установим типы:
npm install --save @types/nodemailer
Пример отправки письма
Нам нужно импортировать пакет Nodemailer в наш код и написать пару функций:
Если смотреть сверху вниз (от первой и до пятой стрелки на картинке):
- Сначала мы импортировали нужный нам пакет;
- Далее вызвали функцию
createTransport()
из нашей библиотеки. В ней указываем какой SMTP сервис будем использовать для отправки письма: в данный момент это gmail. В user пишем логин от почты, а в pass пишем пароль приложения. Пароль приложения - это не пароль от почты, это совсем другая вещь. Получить его можно тут. Единственное условие, на Вашем Google аккаунте должна быть включена двухфакторная аутентификация; - Мы пишем от кого и куда будет отправлено письмо. Также, заполняем тело письма. Внимание, не важно что напишите во from, там всегда будет указан Ваш логин как отправитель в любом письме. Такая политика у Google;
- Тут мы обернули в Promise функцию
sendMail()
. Туда мы передали все что написали в прошлом пункте; - Вызвали нашу функцию, тем самым отправив письмо.
Если все сделали верно, то получите сообщение на указанную Вами почту:
Код:
Как отправить письмо через Яндекс SMTP
Для этого нужно немного модифицировать объект, который мы передаем в функцию createTransport()
:
Вместо gmail в service указываем yandex. В user указываем логин от почты без @yandex.ru, а пароль нужно сгенерировать тут. Это тоже пароль для приложений как и в Gmail.
Оставьте комментарий