Содержание
В этой статье вы узнаете, как отправлять электронные письма с помощью модуля nodemailer. Среди наиболее известных особенностей nodemailer:
- Node.js 0.10+, не использовались махинации ES6, которые могли бы сломать ваше производственное приложение.
- Unicode использовать любые символы, включая полную поддержку смайликов.
- Windows — вы можете установить его с помощью npm в Windows, как и любой другой модуль, скомпилированные зависимости отсутствуют. Используйте его из Azure или из вашей коробки Windows без проблем.
- HTML контент так же как простой текст альтернатива.
- Вложения (включая вложение потоковый для отправки больших файлов).
- Встроенные изображения в HTML.
- Безопасная доставка по электронной почте с использованием SSL / STARTTLS.
- Разные методы транспортировки, используя встроенные SMTP-транспорты или внешние плагины.
- изготовленный на заказ поддержка плагинов для манипулирования сообщениями (добавьте подписи DKIM, используйте контент уценки вместо HTML и т. д.).
- В своем уме XOAUTH2 вход в систему с автоматической генерацией токенов доступа (и отзывы об обновленных токенах).
- Простой встроенный шаблонный с помощью узел-почта-шаблоны или пользовательский рендер.
- Доверенные для SMTP-подключений (SOCKS, HTTP и пользовательских подключений).
Требования
Чтобы отправлять электронные письма в Node.js, как уже упоминалось ранее, вам понадобится модуль nodemailer. Чтобы добавить nodemailer в качестве зависимости в вашем проекте, выполните следующую команду в командной строке Node.js:
npm install nodemailer
Вы можете посетить официальный репозиторий Github для nodemailer для получения дополнительной информации или Сайт пакета в NPM здесь. После загрузки вы сможете потребовать модуль, используя «require('nodemailer')
».
Отправить с учетной записью Gmail
Google использует шифрование SSL и порт 465.
Замечания: чтобы использовать Gmail, вам может потребоваться настроить «Разрешить менее безопасные приложения» в своей учетной записи Gmail, если только вы не используете 2FA, в этом случае вам потребуется создать пароль для конкретного приложения. Вам также может понадобиться разблокировать вашу учетную запись с помощью «Разрешить доступ к вашей учетной записи Google», чтобы использовать SMTP.
var nodemailer = require('nodemailer');
// Create the transporter with the required configuration for Gmail
// change the user and pass !
var transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true, // use SSL
auth: {
user: 'myemail@gmail.com',
pass: 'myPassword'
}
});
// setup e-mail data
var mailOptions = {
from: '"Our Code World " ', // sender address (who sends)
to: 'mymail@mail.com, mymail2@mail.com', // list of receivers (who receives)
subject: 'Hello', // Subject line
text: 'Hello world ', // plaintext body
html: 'Hello world
This is the first email sent with Nodemailer in Node.js' // html body
};
// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});
Отправить с учетной записью Zoho
Zoho mail использует шифрование SSL и порт 465, такой же, как Gmail.
var nodemailer = require('nodemailer');
// Create the transporter with the required configuration for Gmail
// change the user and pass !
var transporter = nodemailer.createTransport({
host: 'smtp.zoho.com',
port: 465,
secure: true, // use SSL
auth: {
user: 'myzoho@zoho.com',
pass: 'myPassword'
}
});
// setup e-mail data, even with unicode symbols
var mailOptions = {
from: '"Our Code World " ', // sender address (who sends)
to: 'mymail@mail.com, mymail2@mail.com', // list of receivers (who receives)
subject: 'Hello ', // Subject line
text: 'Hello world ', // plaintext body
html: 'Hello world
This is the first email sent with Nodemailer in Node.js' // html body
};
// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});
Отправить с учетной записью Outlook (или Hotmail)
Outlook использует шифрование TLS в порту 587 в отличие от Gmail или Zoho. В этом случае нам нужно отключить безопасное соединение по умолчанию, чтобы включить TLS с использованием шифрования SSLv3.
var nodemailer = require('nodemailer');
// Create the transporter with the required configuration for Outlook
// change the user and pass !
var transporter = nodemailer.createTransport({
host: "smtp-mail.outlook.com", // hostname
secureConnection: false, // TLS requires secureConnection to be false
port: 587, // port for secure SMTP
tls: {
ciphers:'SSLv3'
},
auth: {
user: 'mymail@outlook.com',
pass: 'myPassword'
}
});
// setup e-mail data, even with unicode symbols
var mailOptions = {
from: '"Our Code World " ', // sender address (who sends)
to: 'mymail@mail.com, mymail2@mail.com', // list of receivers (who receives)
subject: 'Hello ', // Subject line
text: 'Hello world ', // plaintext body
html: 'Hello world
This is the first email sent with Nodemailer in Node.js' // html body
};
// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});
Кроме того, если ваша учетная запись является hotmail вместо outlook, вы можете использовать встроенную службу hotmail, используя следующий транспорт:
var transport = nodemailer.createTransport("SMTP", {
service: "hotmail",
auth: {
user: "user@hotmail.com",
pass: "password"
}
});
Повеселись !