использовался раньше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
Можно разработать много интересных продуктов, таких как:
- Онлайн-клиент электронной почты
- Шаблон электронной почты
- Центральная система проверки электронной почты
- Помощник группы электронной почты
И т. д. Что касается второго сценария приложения, то в открытом исходном коде есть много красивых шаблонов почтовых ящиков, таких как
- Foundation for Emails
- emailframe emailframe.work
- MJML mjml.io
наконец
Автор все еще обновляетсяH5редакторH5-Dooring, последние обновления следующие:
- Добавьте провинциальные и муниципальные каскадные компоненты
- Добавьте возможность массового импорта данных Excel.
- Добавить форм пользовательскую проверку
- Аудиокомпоненты добавляют автоматическое управление воспроизведением, циклическое воспроизведение и другие элементы конфигурации.
- Добавить горизонтальный скользящий компонент
- Увеличьте функцию загрузки файлов дизайнера форм
- Добавьте компонент лотереи с большим поворотным столом
- Добавлен компонент лотереи Jiugongge.
- Добавить контроль разрешений компонента
- Добавить пользовательскую функцию загрузки библиотеки изображений
найти его полезным? Любимый, если хотите, кстатиотличныйЧто ж, ваша поддержка - моя самая большая поддержка! Поиск в WeChat »Интересный разговор о фронтенде», откройте для себя больше интересных игр H5, webpack, node, gulp, css3, javascript, nodeJS, визуализацию данных на холсте и другие интерфейсные знания и реальный бой.