幫旅遊部落格加上「訂閱電子報」
客戶專案回顧
Ricky-
08 月 22,2026

客戶原本的 footer 有一個「訂閱」表單,但它只是版型——填了 email 什麼都不會發生。我們要把它變成真的能用:收 email、寄歡迎信、發新文章時通知每位讀者、還要能安全退訂。拆開來,其實是三條各自獨立的流程。

訪客訂閱 footer 表單 存進資料庫 歡迎信 + 密件通知站長 站長發文 發佈文章 背景廣播(節流) 逐封通知每位訂閱者 讀者退訂 信裡連結 確認頁 → POST 退訂 + 通知站長
三條獨立流程:訂閱、發文廣播、退訂——各自都能單獨運作與測試。

決策一:先收信,還是先能寄?

我們刻意把「收集並存下 email」和「實際寄信」拆成兩層。前者不依賴任何寄信服務就能上線——就算還沒設好 SMTP,訂閱一樣寫得進資料庫,信件只是印到後台日誌。這讓客戶可以先讓表單真的能用,寄信之後再接,不必卡在一起。

決策二:Gmail SMTP 還是專門寄信服務?

客戶剛起步、訂閱數不高,我們選了最省事的 Gmail SMTP(用應用程式密碼即可),並在設計上留好退路:哪天量大了,只要換掉寄信這一層就能升級到 Resend/SES。

 Gmail SMTP(我們選的)Resend / SES
成本免費免費額度後計費
每日量約 500 封數萬起
設定應用程式密碼需驗證寄件網域
到信率普通較好
適合剛起步、低量規模化

決策三:要不要「雙重確認」?

對一個個人旅遊部落格,我們用單重訂閱:填了 email 就直接算訂閱、並寄一封歡迎信,不強迫再點確認信。門檻低、體驗順;但退訂一定要做好——這也是後面資安那篇的重點。

最後這套包含哪些零件

整個訂閱系統其實是六個小零件組起來的,每一個都對應這個系列裡的一篇筆記:

Subscribers 資料表 email · 名字 · 狀態 · token 訂閱端點(冪等) 重複訂閱不出錯 歡迎信 + 站長通知 個人化稱呼 新文章廣播 背景 · 節流 → FN04 安全退訂 token · 兩段式 → FN05 資料庫重試 冷啟動不噴 500 → FN01
六個零件,各司其職;把大功能拆成能單獨測試的小塊。

誠實的取捨

  • 背景廣播是行程內佇列,容器重啟會漏掉沒送完的;我們用「先標記已寄」換取「不會整批重寄」。
  • Gmail 有每日上限,訂閱數長大就要換寄信服務——但那是「幸福的煩惱」,留給有需要的那天。
  • 每個零件都可獨立驗證,正是這樣我們才敢一塊一塊接、一塊一塊上線。
帶得走的一句話

「加一個訂閱功能」聽起來是一件事,實際上是六件小事。把它們拆開——收信、歡迎、廣播、退訂、重試、資料模型——每一塊都簡單、可測、可獨立上線,整套才穩。

Tags:
產品電子報


相關文章
React整合Hilltop廣告教學
React整合Hilltop廣告教學
ricky - 2025-12-28T09:28:46Z
本篇將介紹如何在 React 專案中整合 Hilltop 廣告,從元件化、動態載入到寬高設定與多單元支援的技術細節。
一個沒帶 req 的 update,讓「發新文章」噴 404
一個沒帶 req 的 update,讓「發新文章」噴 404
ricky - 2026-08-22T09:12:07.878439Z
afterChange hook 的 update 沒帶 req,讓「新建即發佈」在交易未 commit 時查不到自己而 404,以及一行修法。
退訂連結不該把 email 放進網址
退訂連結不該把 email 放進網址
ricky - 2026-08-22T09:12:12.915412Z
退訂連結的資安:用不帶 email 的隨機 token,加 GET 確認 / POST 執行的兩段式,防止任意退訂別人與掃描器誤觸。
訂閱電子報
隨時掌握最新的創業故事與設計開發過程
內容包含來自麒航團隊的日常分享、專業知識與工具推薦,助你了解更多創業背後的思維與技術。
麒航私房推薦
Clelereve Blog LogoClelereve Blog LogoClelereve Blog Logo
廣告區
Clelereve Blog Logo
聯絡我們
任何合作或問題請洽:
clelereve@gmail.com
Follow us
Copyright © 2025 blog.clelereve.com - All Rights Reserved
Frontend Version: -- | Backend Version: --
創業實驗筆記 - Clelereve Blog | 幫旅遊部落格加上「訂閱電子報」 | Clelereve Blog