Предварительная настройка gmail аккаунта
Для начала вам понадобится немного настроить ваш Gmail аккаунт, так как по умолчанию он будет блокировать отправку сообщений через свои smtp сервера. Для начала зайдите в настройки аккаунта, найдите вкладку «Less secure app» и разрешите доступ к вашему аккаунту. myaccount.google.com/lesssecureapps
Установка библиотеки Node-Mailer
Библиотека доступна, как через npm так и через yarn. Я предпочитаю npm как наиболее популярный
npm i nodemailer
Настройка Node-Mailer
Давайте настроим библиотеку работы с почтой, так что бы она использовала smtp сервера Gmail.
const nodemailer = require("nodemailer");
module.exports = {
sendMail: function () {
let mailTransporter = nodemailer.createTransport({
service: "gmail",
auth: {
user:"yourEmail@gmail.com",
pass: "yourPassword",
},
});
},
};
Создаём объект письма
Теперь давайте создадим объект нашего сообщения, которое мы будем отправлять на почту. Со всеми нужными нам полями:
let mailDetails = {
from: "yourEmail@gmail.com",
to: "receiverEmail@anyDomain.com",
subject: "Test email from node JS",
text: "Hey! This email has been sent from Node JS",
};
Отправка сообщения
Теперь нам осталось всего лишь передать объект нашего письма со всеми полями в метод отправки Надей библиотеки Node Mailer
mailTransporter.sendMail(mailDetails, function (err, data) {
if (err) {
console.log("Error Occurs: " + err);
} else {
console.log("Email sent successfully: " + data);
}
});
В этом примере для краткости используются калбеки, но на реальных проектах, я рекомендую использовать промисы, дабы избежать блокировки потока.
При помощи Node Mailer можно, так же легко подключить какой нибудь «взрослый» сервис для отправки почтовых уведомлений, например Mailgun или Sendinblue, и даже Yandex.Mail но со своими оговорками. Новые аккаунты Яндекса часто блокируют отправку сообщений подобным образом. Для начала нужно немного «прогреть» аккаунт и обязательно подтвердить номер телефона