Как использовать Nodejs Автоматически отправить e-mail?

Node.js JavaScript
Как использовать Nodejs Автоматически отправить e-mail?

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

Автор подробно представит схему реализации автоматической отправки почтовых ящиков и проведет всех желающих на реальном кейсе.Отправлять почту автоматически с помощью nodejsНаконец, будут представлены некоторые сценарии практического применения, чтобы углубить понимание схемы и достичь цели применения того, что вы узнали.

План реализации

Для автоматической отправки писем автор используетNodejsэкологическийnodemailer, это может легко помочь нам отправлять электронные письма, официальный адрес веб-сайта:nodemailer.

Почему выбираютnodemailerПотому что он обеспечивает очень гибкую пользовательскую конфигурацию и гарантии безопасности, такие как:

  • Один модуль с нулевыми зависимостями, код легко просматривать, без тупиков
  • UnicodeПоддерживает использование любых символов, включая эмодзи 💪
  • Содержимое электронной почты поддерживает как обычный текст, так и настраиваемыйhtml
  • Поддержка пользовательских вложений
  • Безопасный и надежныйSSL/STARTTLSОтправка почты
  • Поддержка пользовательских плагинов для обработки сообщений электронной почты

Также есть много фич, которые автор не будет вводить по одной, далее давайте рассмотрим кейс официального сайта, который автор упростил и перевел:

"use strict";
const nodemailer = require("nodemailer");

// 使用async..await 创建执行函数
async function main() {
  // 如果你没有一个真实邮箱的话可以使用该方法创建一个测试邮箱
  let testAccount = await nodemailer.createTestAccount();

  // 创建Nodemailer传输器 SMTP 或者 其他 运输机制
  let transporter = nodemailer.createTransport({
    host: "smtp.ethereal.email", // 第三方邮箱的主机地址
    port: 587,
    secure: false, // true for 465, false for other ports
    auth: {
      user: testAccount.user, // 发送方邮箱的账号
      pass: testAccount.pass, // 邮箱授权密码
    },
  });

  // 定义transport对象并发送邮件
  let info = await transporter.sendMail({
    from: '"Dooring 👻" <dooring2021@163.com>', // 发送方邮箱的账号
    to: "bar@example.com, baz@example.com", // 邮箱接受者的账号
    subject: "Hello Dooring", // Subject line
    text: "H5-Dooring?", // 文本内容
    html: "欢迎注册h5.dooring.cn, 您的邮箱验证码是:<b>${emailCode}</b>", // html 内容, 如果设置了html内容, 将忽略text内容
  });
}

main().catch(console.error);

Приведенный выше код предназначен для отправки с обычным текстом иHTMLПолный пример электронного письма в теле, автор сделал подробный перевод кода, и мы можем сделать вывод, что для отправки электронного письма нам необходимо выполнить следующие 3 шага:

  • СоздайтеNodemailerПередатчикSMTPили другой транспортный механизм
  • настраиватьMessageВарианты (какое сообщение кому)
  • Используя ранее созданный транспортsendMail()метод передачи объекта сообщения

Мы знаем процесс использования макроса, а затем внедряем его в каждую техническую функциональную точку.Нам нужно обратить внимание на следующие основные моменты:

  • Как установитьhost
  • Как установитьauth
  • Как настроитьMessageОпции

Ответив на 3 вопроса выше, мы можем использовать его гибко.NodemailerПользовательское электронное письмо отправлено.

Как установить хост, порт, безопасный

Здесь автор использует почтовый ящик NetEase в качестве примера.Например, если мы хотим использовать наш собственный почтовый ящик NetEase для отправки электронных писем пользователям, нам необходимо зарегистрировать почтовый ящик NetEase для отправки электронных писем, напримерdooring2021@163.com, Поскольку мы принимаемSMTPПередатчик, поэтому на главной странице почтового ящика находим следующие опции и устанавливаем:

Ниже этой страницы мы можем найти соответствующиеhost, следующим образом:

оportа такжеsecure, мы можем использовать конфигурацию по умолчанию, установитьsecureдляtrue, указывая, что порт используется по умолчанию465, Подробная конфигурация выглядит следующим образом:

Как настроить авторизацию

authМы уже рассмотрели это в операции предыдущего шага, мы открываемIMAP/SMTPВо время обслуживания вам будет предложено сохранить код авторизации электронной почты.Код авторизации здесьauth.passзначение ,auth.userУказывает текущий авторизованный почтовый ящик.

Как настроить сообщение

Настройка сообщений является важной частью нашего сервиса почтовых ящиков.Официальный предоставляет следующие инструкции по настройке:

Здесь я дам вам подробное введение:

  • fromЭлектронный адрес отправителя. Все адреса электронной почты могут быть чистыми 'sender@server.com«Или формат» «Отправка имя»sender@server.com'
  • toРазделенный запятыми список или массив адресов электронной почты получателей
  • ccРазделенный запятыми список или массив адресов электронной почты получателей, которые будут отображаться в поле «Копия».
  • bccРазделенный запятыми список или массив адресов электронной почты получателей, которые будут отображаться в поле «Скрытая копия:».
  • subjectтема письма
  • textтекстовое содержание сообщения
  • htmlhtml-содержимое сообщения,Если html определен, текст будет игнорироваться
  • attachmentsСодержимое вложения

После ознакомления с приведенной выше конфигурацией мы можем в основном настроить требования к отправке почты, которые соответствуют 80% сценариев.Здесь мы рассмотрим параметрMessageПростой случай:

await transporter.sendMail({
  from: '"v6.dooring" <dooring2021@163.com>', // sender address
  to: 'xujiang156@qq.com', // list of receivers
  subject: 'welcome to use dooring', // Subject line
  text: 'Hello world?', // plain text body
  html: `欢迎注册v6.dooring, 您的邮箱验证码是:<b>${emailCode}</b>`, // html body
})

Дело в том, чтобы использоватьdooringВы знакомы со сценарием отправки кода подтверждения по электронной почте обычному пользователю? Этот сценарий в настоящее время используется во многих сценариях, связанных с входом в систему и регистрацией. Давайте посмотрим на реальный эффект:

расширять

мы используемNodemailerМожно разработать много интересных продуктов, таких как:

  • Онлайн-клиент электронной почты
  • Шаблон электронной почты
  • Центральная система проверки электронной почты
  • Помощник группы электронной почты

И т. д. Что касается второго сценария приложения, то в открытом исходном коде есть много красивых шаблонов почтовых ящиков, таких как

наконец

Автор все еще обновляетсяH5редакторH5-Dooring, последние обновления следующие:

  • Добавьте провинциальные и муниципальные каскадные компоненты
  • Добавьте возможность массового импорта данных Excel.
  • Добавить форм пользовательскую проверку
  • Аудиокомпоненты добавляют автоматическое управление воспроизведением, циклическое воспроизведение и другие элементы конфигурации.
  • Добавить горизонтальный скользящий компонент
  • Увеличьте функцию загрузки файлов дизайнера форм
  • Добавьте компонент лотереи с большим поворотным столом
  • Добавлен компонент лотереи Jiugongge.
  • Добавить контроль разрешений компонента
  • Добавить пользовательскую функцию загрузки библиотеки изображений

найти его полезным? Любимый, если хотите, кстатиотличныйЧто ж, ваша поддержка - моя самая большая поддержка! Поиск в WeChat »Интересный разговор о фронтенде», откройте для себя больше интересных игр H5, webpack, node, gulp, css3, javascript, nodeJS, визуализацию данных на холсте и другие интерфейсные знания и реальный бой.