日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
前端工程師如何使用Nodejs自動(dòng)發(fā)送郵件?

 筆者將詳細(xì)介紹自動(dòng)發(fā)送郵箱的實(shí)現(xiàn)方案, 以及通過(guò)一個(gè)實(shí)際的案例來(lái)帶大家掌握使用nodejs自動(dòng)發(fā)送郵件, 最后會(huì)介紹一些實(shí)際的應(yīng)用場(chǎng)景, 來(lái)加深對(duì)該方案的理解, 達(dá)到學(xué)以致用的目的。

實(shí)現(xiàn)方案

實(shí)現(xiàn)自動(dòng)發(fā)送郵件筆者采用了基于Nodejs生態(tài)的nodemailer, 它可以輕松的幫我們發(fā)送電子郵件, 官網(wǎng)地址: nodemailer.

之所以選擇nodemailer是因?yàn)樗峁┝朔浅l`活的自定義配置和安全保障, 比如:

  • 具有零依賴(lài)關(guān)系的單一模塊, 代碼容易審核,沒(méi)有死角
  • Unicode支持使用任何字符,包括表情符號(hào)
  • 郵件內(nèi)容既支持普通文本, 還支持自定義html
  • 支持自定義附件
  • 支持安全可靠的SSL/STARTTLS郵件發(fā)送
  • 支持自定義插件處理郵件消息

還有很多特點(diǎn)筆者就不一一介紹了. 接下來(lái)我們來(lái)看一個(gè)筆者簡(jiǎn)化并翻譯的官網(wǎng)案例:

 
 
 
  1. "use strict";  
  2. const nodemailer = require("nodemailer");  
  3.   
  4. // 使用async..await 創(chuàng)建執(zhí)行函數(shù)  
  5. async function main() {  
  6.   // 如果你沒(méi)有一個(gè)真實(shí)郵箱的話(huà)可以使用該方法創(chuàng)建一個(gè)測(cè)試郵箱  
  7.   let testAccount = await nodemailer.createTestAccount();  
  8.   
  9.   // 創(chuàng)建Nodemailer傳輸器 SMTP 或者 其他 運(yùn)輸機(jī)制  
  10.   let transporter = nodemailer.createTransport({  
  11.     host: "smtp.ethereal.email", // 第三方郵箱的主機(jī)地址  
  12.     port: 587,  
  13.     secure: false, // true for 465, false for other ports  
  14.     auth: {  
  15.       user: testAccount.user, // 發(fā)送方郵箱的賬號(hào)  
  16.       pass: testAccount.pass, // 郵箱授權(quán)密碼  
  17.     },  
  18.   });  
  19.   
  20.   // 定義transport對(duì)象并發(fā)送郵件  
  21.   let info = await transporter.sendMail({  
  22.     from: '"Dooring  " ', // 發(fā)送方郵箱的賬號(hào)  
  23.     to: "bar@example.com, baz@example.com", // 郵箱接受者的賬號(hào)  
  24.     subject: "Hello Dooring", // Subject line  
  25.     text: "H5-Dooring?", // 文本內(nèi)容  
  26.     html: "歡迎注冊(cè)h5.dooring.cn, 您的郵箱驗(yàn)證碼是:${emailCode}", // html 內(nèi)容, 如果設(shè)置了html內(nèi)容, 將忽略text內(nèi)容  
  27.   });  
  28. }  
  29.   
  30. main().catch(console.error);  

以上代碼是發(fā)送帶有純文本和HTML正文的電子郵件的完整示例. 筆者在代碼上做了詳細(xì)的翻譯, 我們可以總結(jié)出要想發(fā)送郵件, 我們需要如下3個(gè)步驟:

  • 創(chuàng)建Nodemailer傳輸器 SMTP 或者其他運(yùn)輸機(jī)制
  • 設(shè)置 Message 選項(xiàng)(將什么消息發(fā)送給誰(shuí))
  • 使用先前創(chuàng)建的傳輸器的sendMail()方法傳遞消息對(duì)象

宏觀的使用流程我們知道了, 接下來(lái)我們落實(shí)到每一個(gè)技術(shù)功能點(diǎn)來(lái)實(shí)現(xiàn).我們需要關(guān)注如下幾個(gè)核心點(diǎn):

  • 如何設(shè)置 host
  • 如何設(shè)置 auth
  • 如何配置 Message 選項(xiàng)

解答了以上3個(gè)問(wèn)題, 我們就能靈活的使用Nodemailer發(fā)送自定義郵件了.

如何設(shè)置host, port, secure

這里筆者拿網(wǎng)易郵箱來(lái)舉例. 比如我們想用我們自己的網(wǎng)易郵箱給用戶(hù)發(fā)送郵件, 我們需要先注冊(cè)一個(gè)用于發(fā)送郵件的網(wǎng)易郵箱, 比如dooring2021@163.com. 由于我們采用SMTP傳輸器 , 所以在郵箱主頁(yè)我們找到如下選項(xiàng)并設(shè)置:

在該頁(yè)面下方我們可以找到對(duì)應(yīng)的host, 如下:

關(guān)于port和secure, 我們采用默認(rèn)配置即可, 設(shè)置secure為true,表示端口默認(rèn)使用465. 詳細(xì)配置如下:

如何設(shè)置auth

auth我們?cè)谏弦徊降牟僮髦幸呀?jīng)涉及到了, 我們?cè)陂_(kāi)啟IMAP/SMTP服務(wù)時(shí)會(huì)提示保存郵箱授權(quán)碼, 這里的授權(quán)碼就是auth.pass的值, auth.user表示當(dāng)前授權(quán)的郵箱.

如何設(shè)置Message

消息配置是我們郵箱服務(wù)比較重要的部分, 官方提供了如下幾個(gè)配置說(shuō)明:

這里筆者給大家詳細(xì)介紹一下:

  • from 發(fā)件人的電子郵件地址。所有電子郵件地址都可以是純'sender@server.com“或格式化”‘發(fā)送者名稱(chēng)’sender@server.com'
  • to 逗號(hào)分隔的列表或收件人的電子郵件地址的排列
  • cc 逗號(hào)分隔的列表或?qū)@示在“抄送”字段中的收件人電子郵件地址數(shù)組
  • bcc 逗號(hào)分隔的列表或?qū)@示在“密件抄送:”字段中的收件人電子郵件地址數(shù)組
  • subject 電子郵件的主題
  • text 消息的文本內(nèi)容
  • html 消息的html內(nèi)容, 如果定義了html, 將忽略text
  • attachments 附件內(nèi)容

熟悉了以上配置之后我們基本可以配置滿(mǎn)足80%場(chǎng)景的郵件發(fā)送需求了. 這里我們來(lái)看一個(gè)設(shè)置Message的簡(jiǎn)單案例:

 
 
 
  1. await transporter.sendMail({  
  2.   from: '"v6.dooring" ', // sender address  
  3.   to: 'xujiang156@qq.com', // list of receivers  
  4.   subject: 'welcome to use dooring', // Subject line  
  5.   text: 'Hello world?', // plain text body  
  6.   html: `歡迎注冊(cè)v6.dooring, 您的郵箱驗(yàn)證碼是:${emailCode}`, // html body  
  7. })  

該案例是使用dooring郵箱給一個(gè)普通用戶(hù)發(fā)送郵箱驗(yàn)證碼的場(chǎng)景, 是不是很熟悉呢? 這個(gè)場(chǎng)景目前被應(yīng)用在很多登錄注冊(cè)相關(guān)的場(chǎng)景中. 接下來(lái)看看實(shí)際的效果:

擴(kuò)展

我們利用Nodemailer可以開(kāi)發(fā)很多有意思的產(chǎn)品, 比如: - 在線(xiàn)郵箱客戶(hù)端 - 定制郵箱模版 - 郵箱驗(yàn)證中樞系統(tǒng) - 郵箱群發(fā)助手

等等. 關(guān)于第二個(gè)應(yīng)用場(chǎng)景, 目前開(kāi)源有很多漂亮的郵箱模版, 比如 - Foundation for Emails - emailframe http://emailframe.work - MJML https://mjml.io

最后

目前筆者也在持續(xù)更新H5編輯器 H5-Dooring, 以及可視化大屏編輯器V6.Dooring,近期更新如下:

  • 修復(fù)圖片庫(kù)選擇bug
  • 添加省市級(jí)聯(lián)組件
  • 添加批量導(dǎo)入 excel 數(shù)據(jù)的能力
  • 添加表單自定義校驗(yàn)
  • 音頻組件添加自動(dòng)播放控制, 循環(huán)播放等配置項(xiàng)
  • 添加橫向滑動(dòng)組件

分享標(biāo)題:前端工程師如何使用Nodejs自動(dòng)發(fā)送郵件?
文章來(lái)源:http://www.dlmjj.cn/article/dpepegg.html