更新於 2023/10/25閱讀時間約 3 分鐘

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

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

Nodemailer事前準備

  • 應用程式密碼
在開始之前需要準備一組用來發送email的帳號,並且為那個帳號申請應用程式密碼,本篇文章使用Gmail作為撰寫範例,如果你使用其他mail則自行準備登入需要的內容
前往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的內容,各欄位的解說如下或是看
|  欄位   |     內容     |
|-------|------------|
|  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

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

相關資料

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.