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

更新於 2023/10/25閱讀時間約 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
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
在開發 Windows 應用程式時,有時會需要讓使用者能夠進行圖片的複製與貼上操作。這篇教學將會介紹如何在 C# 中實現這樣的功能。我們將使用 System.Drawing 命名空間中的一些類別來處理圖片的複製和貼上操作。
Thumbnail
本文將介紹 SQL 中的SELECT語句,這是從資料庫中查詢數據的基本命令,理解並掌握SELECT語句是學習SQL的重要一步。SELECT 語句是什麼?SELECT語句是 SQL 中用於從資料庫表格中查詢特定數據的基本命令,它可以讓您選擇特定的欄位,從而精確地獲取所需的數據。
Thumbnail
第一段輸入: 你是一個市場行銷專家,善於製作新穎優質的行銷方案。 你擅長使用費曼學習法和第一性原理來回答問題,並且你擁有強大的批判性思維。
Thumbnail
PyInstaller 是一個強大的工具,可以將 Python 程式碼打包成獨立的可執行檔案,讓你的程式可以在沒有 Python 解釋器的情況下運行。這對於分享和分發你的 Python 應用程式非常有用。以下是使用 PyInstaller 的基本步驟:
Thumbnail
著作權法第 65 條 著作之合理使用,不構成著作財產權之侵害。 著作之利用是否合於第四十四條至第六十三條所定之合理範圍或其他合理使用之情形,應審酌一切情狀,尤應注意下列事項,以為判斷之基準: 一、利用之目的及性質,包括係為商業目的或非營利教育目的。 二、著作之性質。 三、所利用之質量及其在
Thumbnail
在進入主題之前建議先行閱讀「【程式語言 - Go】來認識Google開發的程式語言…」,初步認識一下Go語言是什麼? 容不容易學習? 才能夠更快的體會此篇章的目的。 當我們在進行軟體開發時,常常會需要有背後的資料庫系統來儲存我們的資料,而資料庫系統也會隨著時代的演進,進行大幅度的更新,那在這樣
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
在開發 Windows 應用程式時,有時會需要讓使用者能夠進行圖片的複製與貼上操作。這篇教學將會介紹如何在 C# 中實現這樣的功能。我們將使用 System.Drawing 命名空間中的一些類別來處理圖片的複製和貼上操作。
Thumbnail
本文將介紹 SQL 中的SELECT語句,這是從資料庫中查詢數據的基本命令,理解並掌握SELECT語句是學習SQL的重要一步。SELECT 語句是什麼?SELECT語句是 SQL 中用於從資料庫表格中查詢特定數據的基本命令,它可以讓您選擇特定的欄位,從而精確地獲取所需的數據。
Thumbnail
第一段輸入: 你是一個市場行銷專家,善於製作新穎優質的行銷方案。 你擅長使用費曼學習法和第一性原理來回答問題,並且你擁有強大的批判性思維。
Thumbnail
PyInstaller 是一個強大的工具,可以將 Python 程式碼打包成獨立的可執行檔案,讓你的程式可以在沒有 Python 解釋器的情況下運行。這對於分享和分發你的 Python 應用程式非常有用。以下是使用 PyInstaller 的基本步驟:
Thumbnail
著作權法第 65 條 著作之合理使用,不構成著作財產權之侵害。 著作之利用是否合於第四十四條至第六十三條所定之合理範圍或其他合理使用之情形,應審酌一切情狀,尤應注意下列事項,以為判斷之基準: 一、利用之目的及性質,包括係為商業目的或非營利教育目的。 二、著作之性質。 三、所利用之質量及其在
Thumbnail
在進入主題之前建議先行閱讀「【程式語言 - Go】來認識Google開發的程式語言…」,初步認識一下Go語言是什麼? 容不容易學習? 才能夠更快的體會此篇章的目的。 當我們在進行軟體開發時,常常會需要有背後的資料庫系統來儲存我們的資料,而資料庫系統也會隨著時代的演進,進行大幅度的更新,那在這樣