指南

如何從你的應用程式寄送電子郵件(並確保進入收件匣)

要讓應用程式的郵件穩定送達,請使用郵件寄送服務商,而不是自己的信箱;從你自有網域的地址寄信;並新增服務商提供的 DNS 紀錄,讓 SPF、DKIM 與 DMARC 全部通過驗證。請將交易型郵件(密碼重設、收據、確認信)與行銷郵件分開,且每種郵件只寄給預期會收到的人,同時處理退信與取消訂閱。請先把身分驗證做對,這是應用程式郵件被丟進垃圾郵件最常見的原因。

交易型郵件與行銷郵件

這兩種郵件在程式碼裡看起來很像,但收件匣服務商與法律對它們的處理方式差異很大。

交易型郵件行銷郵件(大量寄送)
觸發方式使用者的某個操作你的排程或行銷活動
範例註冊確認、密碼重設、魔術連結、收據、預約提醒、「有人回覆了你」電子報、產品公告、促銷活動、重新喚回用戶
收件對象一次一人一次許多人
同意基礎由使用者的操作隱含同意需要許可,並提供容易取消訂閱的方式
時效要求必須在數秒內送達數分鐘內送達即可
寄送方式從你的應用程式透過 API 寄出電子報工具或服務商的群發功能

請將兩者分開。如果某個行銷活動收到大量檢舉,你不會希望同一個串流中的密碼重設郵件跟著受影響。常見做法是使用不同的子網域,例如用 mail.example.com 寄送帳號相關郵件,用 news.example.com 寄送電子報;部分服務商也會在內部將兩者分開。例如 Postmark 表示,截至 2026 年 9 月,其交易型與廣播型「訊息串流」運行於各自獨立的寄送基礎設施上。

選擇服務商

你的應用程式不應從自己的伺服器直接寄信。寄送服務商會處理基礎設施、IP 信譽、重試與退信處理。知名的選項包括 Postmark、Resend、SendGrid、Amazon SES 與 Mailgun;它們都提供 HTTP API 與 SMTP 存取。價格與方案都會變動,請到各家官網自行比較。

比較時可以注意:

  • **專長。**有些服務商專注於交易型郵件,有些則同時提供交易型與行銷型郵件。
  • **開發者體驗。**API 清楚、有適用於你所用語言的官方函式庫,並且有實用的紀錄,能看出每封郵件是否已送達、退信或被標為垃圾郵件。
  • Webhook:接收退信、檢舉與送達事件,讓你的應用程式能即時反應。
  • 範本:可以儲存在服務商後台,也可以放在你自己的程式碼中。放在程式碼裡,範本就能做版本控管並進行測試。
  • 地區與資料處理:如果你對資料的處理地點有要求。
  • 你的寄送量下的成本,包括超出免費額度後的費用。

若是寄給名單的電子報,專門的電子報或電子郵件行銷工具,通常比在應用程式中自行開發行銷功能更適合。

設定寄件網域

請從自己的網域寄信,例如 hello@example.com,而不是 Gmail 或 Outlook 信箱。透過第三方服務以免費信箱地址寄信,會無法通過身分驗證檢查,也很可能被過濾。

可以考慮專門用於寄信的子網域。例如 Resend 建議(截至 2026 年 9 月)從 updates.example.com 這類子網域寄信,以隔離寄送信譽,也能讓郵件相關的 DNS 紀錄與你的主網站分開。

接著,服務商會提供你要新增的 DNS 紀錄,請到你的網域 DNS 管理處新增。如果你對 DNS 還不熟悉,請先閱讀網域與 DNS 的運作方式,了解各種紀錄。

SPF

SPF(Sender Policy Framework,寄件者政策框架)是一筆 TXT 紀錄,列出哪些伺服器可以代表你的網域寄信。收件端會檢查寄信伺服器是否在名單內。

  • 每個網域只應有一筆 SPF 紀錄。新增服務商時,請把它合併到既有紀錄中,而不是新增第二筆。
  • 評估 SPF 時最多只允許 10 次 DNS 查詢;若 include: 串接過長,可能超過上限而導致失敗。
  • 許多服務商會要求你建立一個回退路徑(return-path)子網域,並在該子網域設定 SPF,因此你可能完全不需要修改主要的 SPF 紀錄。

DKIM

DKIM(DomainKeys Identified Mail)會為每封郵件加上加密簽章。服務商使用私密金鑰簽署,而你則把對應的公開金鑰發布為 DNS 紀錄(依服務商不同,可能是 TXT 或 CNAME)。收件端會檢查簽章,以確認郵件確實來自授權的寄件者,且在傳送途中未被竄改。

服務商的「驗證網域」步驟主要就是在處理 DKIM,請不要跳過。

DMARC

DMARC 會把前兩者串在一起。它是位於 _dmarc.yourdomain.com 的 TXT 紀錄,用來告訴收件端:

  • **對齊(Alignment):**信件上顯示的寄件網域,必須與通過 SPF 或 DKIM 驗證的網域一致。
  • **政策(Policy):**對驗證失敗的郵件該怎麼處理,可以是 p=none(僅回報)、p=quarantine(視為可疑,通常會進垃圾郵件匣)或 p=reject(直接拒收)。
  • **報告(Reports):**彙總報告要寄到哪個地址(rua=),讓你看見有哪些寄件者以你的網域名義寄信。

比較穩妥的做法是:先以 p=none 加上回報地址開始,確認正常的郵件都能通過驗證,再改為 quarantine,最後改為 reject。嚴格的政策也能讓他人更難偽冒你的網域。

Gmail 的要求

截至 2026 年 9 月,Google 的寄件者指南規定:

  • 所有寄件者寄往個人 Gmail 帳號時,都需要 SPF 或 DKIM、寄信伺服器有效的正向與反向 DNS 解析、TLS 加密,並且在 Postmaster Tools 中的垃圾郵件率低於 0.3%。
  • 大量寄件者(每天寄往 Gmail 超過 5,000 封)需要同時具備 SPF 與 DKIM、一筆 DMARC 紀錄(允許使用 p=none 政策)、寄件網域對齊,並在行銷郵件與訂閱郵件中提供一鍵取消訂閱,以及可見的取消訂閱連結。

服務商會處理伺服器端的部分,但 DNS 紀錄與取消訂閱的處理則需要你自己完成。即使你每天的寄送量遠低於 5,000 封,符合大量寄件的規範也是最簡單的安全做法。

把寄信功能建置進應用程式

網域驗證完成後:

  1. 將 API 金鑰儲存為伺服器端的機密資訊,切勿放在前端程式碼中。請參閱什麼是環境變數與機密資訊。
  2. 從伺服器寄信,並在觸發郵件的操作成功之後才寄出。
  3. **不要讓使用者等待郵件寄送。**除了最簡單的應用程式,都應將寄信工作排入佇列,並在暫時性失敗時重試,避免服務商回應變慢而拖累註冊流程。
  4. 記錄寄送結果,包括服務商的郵件 ID 與狀態;不要記錄金鑰,也不要記錄包含個人資料的完整郵件內容。
  5. 處理退信與檢舉的 Webhook:停止寄信給硬退信的地址,或曾將你的郵件標為垃圾郵件的地址。

一則涵蓋基本內容的提示詞範例:

使用伺服器機密 [ENV_NAME],透過 [PROVIDER] 寄送交易型郵件,寄件者為「Acme hello@mail.acme.com」。使用者註冊後寄出歡迎信,預約儲存後寄出預約確認信。範本請保存在程式碼中,並同時提供純文字與 HTML 版本。寄信工作請排入佇列,暫時性失敗最多重試三次。失敗時記錄服務商回傳的錯誤,但絕不記錄 API 金鑰。新增一個 Webhook 端點,在發生硬退信或檢舉時將地址標記為無法投遞,並在之後的寄送中略過這些地址。

帳號相關郵件(驗證連結、魔術連結與密碼重設)也屬於登入流程的一部分。如何為應用程式加入登入功能說明了這些流程如何銜接;請確保這些連結只能使用一次,且有效期限很短。

送達率的良好習慣

身分驗證讓郵件有機會被考慮,而日常的寄信行為則決定它能否留在收件匣。

  • **只寄出人們預期會收到的郵件。**確認過的註冊、行銷郵件需明確同意加入,不要使用購買的名單。
  • **讓取消訂閱變得容易。**對於非純交易型的郵件,請提供簡單的取消方式,並立即執行。
  • **為新網域逐步暖身。**全新網域在第一天就寄出數千封郵件,看起來很可疑。請先從交易型郵件開始,再逐步提高寄送量。
  • **保持名單乾淨。**立即移除硬退信的地址;對於長時間沒有開啟任何郵件的人,也可以考慮移除。
  • **寫得像真人。**主旨清楚、寄件者名稱容易辨識、附上純文字版本、圖片與連結不要太多,並使用你自己網域的連結。避免使用短網址服務。
  • **持續監控。**在 Google Postmaster Tools 中註冊你的網域,並不定期查看 DMARC 報告。
  • **使用真正會被閱讀的回覆地址。**回覆是很好的正面訊號,也能提供有用的回饋。

測試時不打擾任何人

  • 如果服務商提供測試模式或沙盒環境,請使用它;或寄給你自己擁有的地址。
  • 在開發階段,請寄到接收所有郵件的測試信箱,而不是真實用戶;內含大量看似真實地址的種子資料庫,很容易不小心寄信給陌生人。
  • 在幾種郵件用戶端中檢查每個範本,例如網頁版 Gmail、手機的郵件應用程式、Outlook,並檢查深色模式。
  • 查看測試郵件的標頭資訊:它會顯示 SPF、DKIM 與 DMARC 是否通過驗證。

法律基本概念

各國規定不同。概括來說,許多地區的行銷郵件都需要同意,必須標明寄件者,並提供有效的取消訂閱方式;交易型郵件的規範較不相同,但也不應藉此夾帶行銷內容。如果你透過候補名單頁面收集地址,請說明你會寄送什麼內容、何時寄送,以及每位使用者何時、如何註冊,並說明你會如何保存這些資料。若有疑問,請查閱你的用戶所在地的規定。

郵件檢核清單

  • 已選定寄送服務商,且 API 金鑰已儲存為伺服器機密資訊
  • 從你自己的網域或子網域寄信,而非免費信箱
  • 已新增 SPF、DKIM 與 DMARC 紀錄,且全數通過驗證
  • 交易型郵件與行銷郵件已分開
  • 寄信工作已排入佇列並重試,寄送結果已記錄
  • 已處理退信與檢舉的 Webhook
  • 非交易型郵件提供取消訂閱,並立即生效
  • 範本已在數種用戶端中測試,測試郵件絕不會寄給真實用戶

從 Mythex 應用程式寄送郵件

Mythex 不提供內建的郵件寄送服務給你建置的應用程式,因此你需要自行選用服務商,例如 Resend、SendGrid 或 Postmark。請將其 API 金鑰儲存為專案機密資訊(代理程式可以在聊天中透過機密資訊卡片請你提供),再用一般語言說明你需要的郵件。說明文件中有一則起始提示詞,見從應用程式寄送郵件。若你在 Pro 方案中透過 Mythex 購買網域,可以在網域的 DNS 設定中新增服務商提供的 TXT 與 CNAME 紀錄;請參閱自訂網域。

常見問題

交易型郵件與行銷郵件有什麼差別?

交易型郵件是由使用者的某個操作觸發,且是使用者預期會收到的,例如密碼重設、收據或預約確認。行銷郵件則是依你的排程寄給許多人,例如電子報與公告。兩者的同意規則不同,最好分開從不同的發送串流或子網域寄出。

為什麼我的應用程式郵件會被丟進垃圾郵件?

常見原因包括:寄件網域未設定 SPF、DKIM 與 DMARC;透過第三方服務以 Gmail 等免費信箱寄信;全新網域沒有信譽;或內容與連結看起來像垃圾郵件。請先修正身分驗證,再檢查內容與寄送量。

我可以用自己的 Gmail 帳號寄應用程式郵件嗎?

也許可以用來寄幾封個人測試郵件,但不適合用於正式的應用程式。請使用具備自有網域的郵件寄送服務商,設定它提供的 DNS 紀錄,並從該網域的地址寄信。

我需要 DMARC 嗎?

實際上需要。截至 2026 年 9 月,Google 要求每天向 Gmail 地址寄送超過 5,000 封郵件的寄件者設定 DMARC;而 DMARC 紀錄也能防止你的網域遭到偽冒。在檢視報告的同時,先以 p=none 政策開始即可。

Mythex · Pricing · 用 AI 打造任何東西 · 網站與應用程式範本 · Mythex 比較 · AI 應用程式開發詞彙表 · 免費的 AI 應用程式開發工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港)