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

更新 發佈閱讀 4 分鐘
raw-image

寫一封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會員
29內容數
沙龍新手
鼻爾蓋茲筆一下的其他內容
2023/10/12
在目前網路社群當道的時代,一個微型網站匯聚網路各處資訊的中心站變得重要Portaly傳送門提供所有人簡單架設微型網站的選擇,讓不懂程式、不懂美術、不懂伺服器的人皆可輕鬆上手。Portaly傳送門的微型網站適合各種創作者,尤其適用於社群入口型網站,讓粉絲或消費者透過社群入口進入品牌的各種內容,甚至透過
Thumbnail
2023/10/12
在目前網路社群當道的時代,一個微型網站匯聚網路各處資訊的中心站變得重要Portaly傳送門提供所有人簡單架設微型網站的選擇,讓不懂程式、不懂美術、不懂伺服器的人皆可輕鬆上手。Portaly傳送門的微型網站適合各種創作者,尤其適用於社群入口型網站,讓粉絲或消費者透過社群入口進入品牌的各種內容,甚至透過
Thumbnail
2023/10/05
常常會在網路上看到專業的品牌能夠使用自己的域名來收發Email,使用自己的域名收發Email不僅可以讓網站容易被記住,也能讓用戶收到你的Email能更加信任信件內容。 使用Gmail作為電子郵件伺服器也沒有問題,因為其免費使用而且功能齊全,其實光是免費這項優點就值得使用Gmail當作電子郵件伺服器。
Thumbnail
2023/10/05
常常會在網路上看到專業的品牌能夠使用自己的域名來收發Email,使用自己的域名收發Email不僅可以讓網站容易被記住,也能讓用戶收到你的Email能更加信任信件內容。 使用Gmail作為電子郵件伺服器也沒有問題,因為其免費使用而且功能齊全,其實光是免費這項優點就值得使用Gmail當作電子郵件伺服器。
Thumbnail
2023/01/06
Bitly是一個常見的短連結平台,提供所有使用者把原始網址轉換成較為簡短的連結字數,同時該平台也提供API給使用者串接使用 大概看過官方提供的api文件,算是功能齊全,只要本身帳號權限夠高,所有操作皆可在API中進行 自己也是有少量使用過bitly平台,那就嘗試動手串接一下API看看 取得通行證(A
Thumbnail
2023/01/06
Bitly是一個常見的短連結平台,提供所有使用者把原始網址轉換成較為簡短的連結字數,同時該平台也提供API給使用者串接使用 大概看過官方提供的api文件,算是功能齊全,只要本身帳號權限夠高,所有操作皆可在API中進行 自己也是有少量使用過bitly平台,那就嘗試動手串接一下API看看 取得通行證(A
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
這篇想來寫,剛碰到js得時候,為了讓程式可以運作而安裝Node.js 。Node.js 是能夠在伺服器上面運行 JavaScript 的應用平台環境,透過 Node.js 提供的函式庫與執行環境能完成伺服器端服務。此篇幅就直接從純後端的角度切入摟(對不起拉我寫來寫去還是不知道怎麼順順的寫好文章開頭Q
Thumbnail
這篇想來寫,剛碰到js得時候,為了讓程式可以運作而安裝Node.js 。Node.js 是能夠在伺服器上面運行 JavaScript 的應用平台環境,透過 Node.js 提供的函式庫與執行環境能完成伺服器端服務。此篇幅就直接從純後端的角度切入摟(對不起拉我寫來寫去還是不知道怎麼順順的寫好文章開頭Q
Thumbnail
你/妳很常要重複註冊同一個產品嗎?也許這個方式會有幫助。
Thumbnail
你/妳很常要重複註冊同一個產品嗎?也許這個方式會有幫助。
Thumbnail
工作日常中 Gmail 信箱總伴隨著海量信件與附件往返,有時候附件收到後都要再逐一上傳到公司內部雲端資料夾,或手動儲存到個人的雲端硬碟,方便未來查找與協作。現在只要 Gmail 信箱的信件包含附檔,NoCode 幫你自動同步儲存至 Google 雲端硬碟資料夾建檔,再也不用手動儲存或擔心遺忘建檔啦!
Thumbnail
工作日常中 Gmail 信箱總伴隨著海量信件與附件往返,有時候附件收到後都要再逐一上傳到公司內部雲端資料夾,或手動儲存到個人的雲端硬碟,方便未來查找與協作。現在只要 Gmail 信箱的信件包含附檔,NoCode 幫你自動同步儲存至 Google 雲端硬碟資料夾建檔,再也不用手動儲存或擔心遺忘建檔啦!
Thumbnail
首先要先設定兩步驟驗證: 2. 設定完就會出現應用程式密碼: 選取應用程式: 郵件 因為是印表機要用的,所以選取裝置選其他(自訂名稱): 按下產生後,即會產生一組應用程式密碼: 接著到印表機設定後台,找到SMTP設定: 主要伺服器: smtp.gmail.com 連接埠號碼: 465 傳送方位址/
Thumbnail
首先要先設定兩步驟驗證: 2. 設定完就會出現應用程式密碼: 選取應用程式: 郵件 因為是印表機要用的,所以選取裝置選其他(自訂名稱): 按下產生後,即會產生一組應用程式密碼: 接著到印表機設定後台,找到SMTP設定: 主要伺服器: smtp.gmail.com 連接埠號碼: 465 傳送方位址/
Thumbnail
管理Google帳戶 -> 資料和隱私權: 下載您的資料 會進到Google匯出頁面: 選取Gmail按下一步: 選擇轉移目標: 我這邊選傳送到email->建立匯出作業 等完成後,會收到email: 收到的mail: 下載後的zip解壓縮,裡面有個.mbox檔案,這種檔案格式可用Mbox View
Thumbnail
管理Google帳戶 -> 資料和隱私權: 下載您的資料 會進到Google匯出頁面: 選取Gmail按下一步: 選擇轉移目標: 我這邊選傳送到email->建立匯出作業 等完成後,會收到email: 收到的mail: 下載後的zip解壓縮,裡面有個.mbox檔案,這種檔案格式可用Mbox View
Thumbnail
Firebase 推播訊息 的第二篇文章是在說明當 Firebase 專案建立完成之後,如何利用Nodejs和專案裡的金鑰將message推播出去 本篇會先介紹如何建立一個Nodejs專案,再介紹如何透過程式將訊息推播出去。 首先建立一個sendMsg的資料夾 2. 進入sendMsg 資料夾後執行
Thumbnail
Firebase 推播訊息 的第二篇文章是在說明當 Firebase 專案建立完成之後,如何利用Nodejs和專案裡的金鑰將message推播出去 本篇會先介紹如何建立一個Nodejs專案,再介紹如何透過程式將訊息推播出去。 首先建立一個sendMsg的資料夾 2. 進入sendMsg 資料夾後執行
Thumbnail
寫一封email是現在人的日常,用程式發送email本來以為是一件難事,但自從摸了一下Nodemailer以後世界就變得不一樣 甚至使用Nodemailer搭配Express就可以製作出簡易發送Email的API給自己使用(or別人),馬上進入主題 首先你要有一個nodejs的server,會看這篇
Thumbnail
寫一封email是現在人的日常,用程式發送email本來以為是一件難事,但自從摸了一下Nodemailer以後世界就變得不一樣 甚至使用Nodemailer搭配Express就可以製作出簡易發送Email的API給自己使用(or別人),馬上進入主題 首先你要有一個nodejs的server,會看這篇
Thumbnail
雖然Gandi信箱建立好了,但平常大家習慣使用的信箱應該就那麼幾個,不太可能會到處開信箱收信,這真的是很麻煩的事情。 所以,為了能及時收到信,就需要設定Gmail可以代收發Gandi信箱的信。
Thumbnail
雖然Gandi信箱建立好了,但平常大家習慣使用的信箱應該就那麼幾個,不太可能會到處開信箱收信,這真的是很麻煩的事情。 所以,為了能及時收到信,就需要設定Gmail可以代收發Gandi信箱的信。
Thumbnail
在你購買域名之後,通常會有附贈的電子信箱,你就能用這些信箱去做Email行銷,因為是你的個人域名,所以會比使用免費的Gmail信箱要顯得有一些專業度。 既然域名有送信箱,那就拿來用一下吧,也提升一下自己的專業度。
Thumbnail
在你購買域名之後,通常會有附贈的電子信箱,你就能用這些信箱去做Email行銷,因為是你的個人域名,所以會比使用免費的Gmail信箱要顯得有一些專業度。 既然域名有送信箱,那就拿來用一下吧,也提升一下自己的專業度。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News