使用程式發送email,Nodejs+Nodemailer來發送Email

更新於 發佈於 閱讀時間約 3 分鐘
使用程式發送email,Nodejs+Nodemailer來發送Email封面
寫一封email是現在人的日常,用程式發送email本來以為是一件難事,但自從摸了一下Nodemailer以後世界就變得不一樣
甚至使用Nodemailer搭配Express就可以製作出簡易發送Email的API給自己使用(or別人),馬上進入主題
首先你要有一個nodejs的server,會看這篇文章我就預設是已經準備齊全,尚未準備好可直接使用模板進行編輯
OK馬上進入實作環節

Nodemailer事前準備

  • 應用程式密碼
在開始之前需要準備一組用來發送email的帳號,並且為那個帳號申請應用程式密碼,本篇文章使用Gmail作為撰寫範例,如果你使用其他mail則自行準備登入需要的內容
前往google帳號的Google 帳戶頁面,進入左方 安全性頁籤後在登入google的區塊點選 應用程式密碼,選擇郵件並選擇server部署環境即可,若沒有辦法申請則是因為安全性問題需要將此帳號設定兩階段密碼驗證才能繼續申請 應用程式密碼

安裝Nodemailer

npm install nodemailer

Nodemailer程式初始化

基本使用可參考官方的範例,本文使用Gmail作為範例撰寫,在初始化的過程中會需要填入發送email的帳號及申請的應用程式密碼
const nodemailer = require("nodemailer")

const transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: <EMAIL_SERVICE_AUTH_USER>,
pass: <EMAIL_SERVICE_AUTH_PW>
}
})
接下來就可以撰寫基本發送email的內容,各欄位的解說如下或是看Message configuration
|  欄位   |     內容     |
|-------|------------|
| from | 郵件寄出人 |
| to | 郵件寄給誰 |
| subject | 郵件標題 |
| text | 郵件文字內容 |
| html | 郵件HTML內容 |
| cc | 郵件副本 |
| bcc | 郵件副本密送 |
其中 from& to& cc寄送人的欄位除了可以直接填寫mail格式以外,也可以用 "someone” <someone@gmail>的格式撰寫,寄送給多人可用逗號隔開或是用陣列方式撰寫,更多其他格式則參考官方文件
寄送email的方式是使用 sendMail,將前面準備好的寄送內容傳入即可成功寄送,可以準備回調程式來處理發送成功或失敗的狀態處理
const mailOptions = {
from: <EMAIL_FROM>,
to: <EMAIL_TO>,
subject: <EMAIL_TITLE>,
text: <EMAIL_CONTENT>
}
transporter.sendMail(mailOptions, (err, info) => {
if (err) {
ErrHandler()
} else {
Callback()
}
})
撰寫到此就是基本使用Nodemailer寄送Email的紀錄
若是想要有基本的樣式則需要使用HTML格式放在 html的欄位中寄出

製作成API

蹦~就完成了,可直接參考專案

相關資料

為什麼會看到廣告
avatar-img
6會員
23內容數
沙龍新手
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
技術叢林 的其他內容
對於前端工程師來說github上的gh-page是一個很適合放置自己作品的地方 尤其適合想要練練手感的時候可以方便地展示成果的地方 在過去使用手動commit至gh-page的分支上,或是使用deploy.sh檔來部署,對於我這種懶人來說都是多一個步驟,時常會覺得麻煩 現在能夠透過github ac
對於前端工程師來說github上的gh-page是一個很適合放置自己作品的地方 尤其適合想要練練手感的時候可以方便地展示成果的地方 在過去使用手動commit至gh-page的分支上,或是使用deploy.sh檔來部署,對於我這種懶人來說都是多一個步驟,時常會覺得麻煩 現在能夠透過github ac
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本篇文章介紹如何使用 PyTorch 這個強大的工具程式庫來建立一個反饋類神經網路。從單變數的「墨西哥帽」模型學習,到設定類神經網路的結構和訓練方法,資料轉換、類神經網路創建以及訓練過程的步驟。此外,也分析訓練過程中的誤差趨勢,幫助理解模型性能,適合希望快速掌握 PyTorch 的人工智慧開發者。
Thumbnail
本文描敘如何配合 nVidia Jetson Orin Nano 的多核心 GPU 的裝置,利用 PyTorch 來作 CUDA python 程式開發。
Thumbnail
蘋果在 2024 年先替歐盟地區開放第三方 iPhone NFC 權限後, 如今也發佈新聞稿,宣布將在 iOS 18.1 向更多國家開發者開放第三方應用 iPhone 的 NFC 晶片 API 使用權限, 能夠支援數位錢包、數位鑰匙、大眾交通卡、學生證等。 NFC 是什麼? iPh
Thumbnail
這篇文章介紹瞭如何運用強大的AI工具Claude 3.5 Sonnet來優化和開發自己的交易策略。通過使用Python程式碼及TradingView的PineScript,讀者可以輕鬆理解動能策略及ATR實現的方法,並在TradingView上實踐以評估報酬率和風險指標。
Thumbnail
在這篇教學文章中,我們將展示如何使用 Node.js 建立一個簡單的伺服器,並解決常見的跨來源資源共享(CORS)問題,確保伺服器能夠接收並處理來自不同來源的資料。
※ 補充說明: ※ npm 常用指令: ◦ npm init–y:快速初始化一個新的 Node.js 並建立一個 package.json 文件的命令。 ◦ npm info 套件名稱 version:快速查詢指定 npm 套件的最新版本號。 ◦ npm install套件名稱:用來安裝
Thumbnail
最近在研究 Email Marketing,發現寄信服務有產業限制,建議在購買之前確認 TOC,並注意回覆訂閱者的問題。使用 Cloudflare 和 Gmail 來轉寄所有信件到自己的網域信箱。建議直接購買 Zoho 或 MxRoute 來省去架 Mail Server 的麻煩。
Thumbnail
這篇文章介紹瞭如何寫出專業的電子郵件開頭句,分享了六種必備的實用模板,讓你可以根據不同情境或目的,填入關鍵詞套用,讓你的email看起來超專業!
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
在開發 Windows 應用程式時,有時會需要讓使用者能夠進行圖片的複製與貼上操作。這篇教學將會介紹如何在 C# 中實現這樣的功能。我們將使用 System.Drawing 命名空間中的一些類別來處理圖片的複製和貼上操作。
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本篇文章介紹如何使用 PyTorch 這個強大的工具程式庫來建立一個反饋類神經網路。從單變數的「墨西哥帽」模型學習,到設定類神經網路的結構和訓練方法,資料轉換、類神經網路創建以及訓練過程的步驟。此外,也分析訓練過程中的誤差趨勢,幫助理解模型性能,適合希望快速掌握 PyTorch 的人工智慧開發者。
Thumbnail
本文描敘如何配合 nVidia Jetson Orin Nano 的多核心 GPU 的裝置,利用 PyTorch 來作 CUDA python 程式開發。
Thumbnail
蘋果在 2024 年先替歐盟地區開放第三方 iPhone NFC 權限後, 如今也發佈新聞稿,宣布將在 iOS 18.1 向更多國家開發者開放第三方應用 iPhone 的 NFC 晶片 API 使用權限, 能夠支援數位錢包、數位鑰匙、大眾交通卡、學生證等。 NFC 是什麼? iPh
Thumbnail
這篇文章介紹瞭如何運用強大的AI工具Claude 3.5 Sonnet來優化和開發自己的交易策略。通過使用Python程式碼及TradingView的PineScript,讀者可以輕鬆理解動能策略及ATR實現的方法,並在TradingView上實踐以評估報酬率和風險指標。
Thumbnail
在這篇教學文章中,我們將展示如何使用 Node.js 建立一個簡單的伺服器,並解決常見的跨來源資源共享(CORS)問題,確保伺服器能夠接收並處理來自不同來源的資料。
※ 補充說明: ※ npm 常用指令: ◦ npm init–y:快速初始化一個新的 Node.js 並建立一個 package.json 文件的命令。 ◦ npm info 套件名稱 version:快速查詢指定 npm 套件的最新版本號。 ◦ npm install套件名稱:用來安裝
Thumbnail
最近在研究 Email Marketing,發現寄信服務有產業限制,建議在購買之前確認 TOC,並注意回覆訂閱者的問題。使用 Cloudflare 和 Gmail 來轉寄所有信件到自己的網域信箱。建議直接購買 Zoho 或 MxRoute 來省去架 Mail Server 的麻煩。
Thumbnail
這篇文章介紹瞭如何寫出專業的電子郵件開頭句,分享了六種必備的實用模板,讓你可以根據不同情境或目的,填入關鍵詞套用,讓你的email看起來超專業!
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
在開發 Windows 應用程式時,有時會需要讓使用者能夠進行圖片的複製與貼上操作。這篇教學將會介紹如何在 C# 中實現這樣的功能。我們將使用 System.Drawing 命名空間中的一些類別來處理圖片的複製和貼上操作。