Найти в Дзене
Funny IT

5 способов Email рассылки на Node.js

Одной из стандартных задач веб-разработки является отправка писем на различные email-адреса. Она может быть полезна при восстановлении паролей пользователей, для уведомлений о различных акциях компании, для информирования администратора сайта об ошибках в работе сервера и во многих других ситуациях. В случае разработки приложения на Node.js у нас есть сразу несколько вариантов модулей для реализации отправки почты с поддержкой html: 1) Nodemailer. Он устанавливается следующим образом: ~$ npm i nodemailer. Отправка писем с помощью этого npm-пакета выглядит немного громоздко, поэтому имеет смысл использовать функцию-обертку, наподобие такой: const nodemailer = require('nodemailer'); const config = require('../config'); module.exports = function(email, subject, message) { const mailTransport = nodemailer.createTransport({ service: 'gmail', secure: false, port: 25, auth: { user: config.email.user, pass: config.email.pass }, tls: { rejectUnauthorized: false } }); mailTran

Одной из стандартных задач веб-разработки является отправка писем на различные email-адреса. Она может быть полезна при восстановлении паролей пользователей, для уведомлений о различных акциях компании, для информирования администратора сайта об ошибках в работе сервера и во многих других ситуациях.

Джакс - символ сегодняшней статьи
Джакс - символ сегодняшней статьи

В случае разработки приложения на Node.js у нас есть сразу несколько вариантов модулей для реализации отправки почты с поддержкой html:

1) Nodemailer. Он устанавливается следующим образом: ~$ npm i nodemailer. Отправка писем с помощью этого npm-пакета выглядит немного громоздко, поэтому имеет смысл использовать функцию-обертку, наподобие такой:

const nodemailer = require('nodemailer');
const config = require('../config');
module.exports = function(email, subject, message) {
const mailTransport = nodemailer.createTransport({
service: 'gmail',
secure: false,
port: 25,
auth: { user: config.email.user, pass: config.email.pass },
tls: { rejectUnauthorized: false }
});
mailTransport.sendMail({
from: 'Your company',
to: email,
subject: subject,
text: message
}, function(err, info) {});
};

Отправка сообщений теперь выглядит просто фантастически:

const mailer = require('./mailer');
mailer('address@gmail.com', 'hola mundo', 'test message :)');

2) Mail. Установить пакет Mail можно так: ~$ npm i mail. И далее используем в коде:

let mail = require('mail').Mail({
host: 'smtp.gmail.com',
username: 'me@gmail.com',
password: 'password'
});
mail.message({
from: 'sender@example.net',
to: ['recipient@somewhere.org'],
subject: 'Hello from Node.JS'
})
.body('Node speaks SMTP!')
.send(function(err) {});

3) Sendmail. Добавляем в зависимости командой: ~$ npm i sendmail. Теперь можно очень просто отправить письмо:

const sendmail = require('sendmail')();
sendmail({
from: 'no-reply@yourdomain.com',
to: 'test@qq.com, test@sohu.com, test@163.com ',
subject: 'test sendmail',
html: 'Mail of test sendmail ',
}, function(err, reply) {});

4) Express-mail. Устанавливаем: ~$ npm i express-mail.

const express = require('express');
const expressMail = require('express-mail');
const app = express.createServer();
expressMail.extend(app, {
transport: 'SMTP',
config: {
service: 'Gmail',
auth: { user: 'gmail.user@gmail.com', pass: 'userpass' }
},
defaults: { from: 'gmail.user@gmail.com' }
});

5) Express-mailer. Команда для установки: ~$ npm i express-mailer.

const app = require('express')();
const mailer = require('express-mailer');
mailer.extend(app, {
from: 'no-reply@example.com',
host: 'smtp.gmail.com',
secureConnection: true,
port: 465,
transportMethod: 'SMTP',
auth: { user: 'gmail.user@gmail.com', pass: 'userpass' }
});

Надеюсь, вы узнали для себя что-то новое или освежили информацию в памяти! Спасибо за внимание! ;)