Как отправить электронное письмо (gmail, outlook и Zoho) с помощью nodemailer в Node.js

В этой статье вы узнаете, как отправлять электронные письма с помощью модуля 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"
}
});

Повеселись !

Ссылка на основную публикацию
Adblock
detector