文章

2026 年網站透過 Gmail SMTP 發信:兩步驟驗證與應用程式密碼設定

返回

2026 年若要讓網站透過 Gmail SMTP 對外發信,可行途徑只剩兩種:先啟用兩步驟驗證再產生應用程式密碼,或改用 OAuth 2.0。 直接填入 Gmail 登入密碼已經失效,仍在教人打開「低安全性應用程式」的網路文章也不再適用。

一般官網大約三步就能完成:打開兩步驟驗證、取得一組 16 碼應用程式密碼,再到後台寫入 smtp.gmail.com。下文依序說明,並整理寄送額度與常見失敗狀況。

先接上寄信通道,表單通知才進得了信箱

SMTP(Simple Mail Transfer Protocol) 是負責把信件送出去的通訊協定,可以把它想成網站的送信員。聯絡表單回條、訂單確認與重設密碼信,都得靠這條通道發出。

不少網站預設呼叫主機內建的 mail() 來發信。這類信件缺少寄件者認證,很容易被歸到垃圾信,嚴重時會被直接退回。

和業主溝通時,常聽到類似情況:網站已上線半年,後來才發現詢問信一封都沒進信箱。追下去,多半是發信管道根本沒接好。改走 Gmail SMTP 後,寄件身分由 Google 驗證,進到收件匣的機率會明顯提高。

只靠帳號密碼登入的舊式發信已全面停用

Google 已分階段關閉「低安全性應用程式」(Less Secure Apps),也就是僅以帳號與密碼登入的第三方程式:

時點調整內容受影響帳戶
2022-05-30不再支援僅靠帳密登入的外部程式個人 Google 帳戶
2024 年夏季阻擋新的連線,且管理員不能重新啟用該選項Google Workspace
2025 年SMTP、IMAP、POP 不再接受一般密碼(應用程式密碼仍可用)Google Workspace
2026 現在可用方式僅剩應用程式密碼與 OAuth 2.0所有帳戶

Workspace 的正式停用時點,Google 最初公告為 2025 年 3 月 14 日,其後延至 5 月 1 日。這兩個時點都已過期,結果並無不同:網站發信必須改採目前仍被允許的方式。

設定之前,先確認 Gmail SMTP 的寄送額度

依 Google 公開說明,額度大致如下。一旦超出,帳戶最長會暫停發信 24 小時,收信則不受影響:

項目個人 GmailGoogle Workspace
每日寄出封數500 封每名使用者 2,000 封(以連續 24 小時計算)
單封收件人數500 人走 SMTP 時上限 100 人
每日收件人合計官方未公開共 10,000 人(外部地址 3,000 人)
試用帳戶無此情況每日 500 封
較適合的用途小型網站的表單提醒需發送訂單通知或會員信的站點

一般公司官網的聯絡表單通知,個人 Gmail 每天 500 封通常足夠。大量電子報不適合走 Gmail SMTP,應改用 Mailchimp、SendGrid 等專用發送服務。

第一步:開啟 Google 兩步驟驗證

兩步驟驗證(2-Step Verification) 開啟之後,登入時除了密碼,還必須用手機確認身分。沒有這一步,就無法建立應用程式密碼。

  1. 登入準備用來發信的 Google 帳戶
  2. 進入「Google 帳戶」,再點「安全性」
  3. 找到「兩步驟驗證」,依畫面完成手機確認
  4. 驗證方式可選「Google 提示」或「驗證器應用程式」
  5. 狀態變成「已開啟」即代表完成

第 4 步要特別留意:若帳戶只設定了安全金鑰(Security Key),應用程式密碼的選項不會出現。 請至少再增加一種驗證方式。

開啟兩步驟驗證不只是為了發信,也是保護帳戶的基本措施。若想延伸閱讀,可參考網站資安防護說明。

第二步:產生一組 16 碼應用程式密碼

應用程式密碼(App Password) 是一組 16 個字元的專用密碼,給不支援 Google 登入的程式(例如網站後台)使用。它和您平常登入 Gmail 的密碼並不相同。

  1. 在瀏覽器直接打開 myaccount.google.com/apppasswords
  2. 若找不到入口,可在 Google 帳戶頁上方搜尋「應用程式密碼」
  3. 填一個方便辨識的名稱,例如「公司網站發信」
  4. 按下「建立」,畫面會出現 16 碼密碼
  5. 馬上複製並妥善保存,這組密碼只會顯示一次

貼進網站前先移除空格

Google 顯示時會把密碼分成四段,例如 abcd efgh ijkl mnop。寫進網站設定時,建議去掉空格,改填 abcdefghijklmnop。有些外掛會把空格算進密碼,導致認證失敗。

看不到應用程式密碼,常見是這三個原因

原因處理方式
兩步驟驗證只綁了安全金鑰再加入「Google 提示」或驗證器應用程式
帳戶已加入「進階保護計畫」無法使用應用程式密碼,請改走 OAuth 2.0
公司或學校的 Workspace 帳戶請管理員確認是否開放,或改用 SMTP 轉發

第三步:在網站後台填寫 SMTP 參數

無論是 WordPress、Laravel 或其他系統,要填的欄位都相同:

參數設定值
SMTP 主機smtp.gmail.com
連接埠587(TLS,較建議)或 465(SSL)
加密方式587 搭配 TLS,465 搭配 SSL
SMTP 帳號完整的 Gmail 或 Workspace 信箱地址
SMTP 密碼前一步產生的 16 碼應用程式密碼
寄件者名稱公司名稱或網站名稱
寄件者信箱與 SMTP 帳號相同

寄件信箱應與 SMTP 帳號一致

寄件者信箱請填 SMTP 帳號本身。若要用其他地址寄出,須先到 Gmail 設定的「以這個地址寄送郵件」加入該地址並完成驗證。

連接埠要和加密方式互相對應

587 要配 TLS、465 要配 SSL,配錯通常會連線逾時。設定後先寄一封測試信給自己,並搭配網站 SSL 憑證設定,讓表單資料在傳輸全程保持加密。

一般網站可用應用程式密碼,系統整合宜改走 OAuth 2.0

Google 的官方建議很清楚:若能使用「以 Google 帳戶登入」或 OAuth 2.0,應優先採用;應用程式密碼並不建議,多數情況也沒有必要。但網站後台只能填 SMTP 帳號與密碼時,應用程式密碼仍是最直接的做法。

情境建議做法原因
WordPress、Laravel 後台直接填 SMTP應用程式密碼不必另外寫程式,填完就能發信
有工程人員的系統整合或 SaaS 產品OAuth 2.0更換 Google 密碼不會中斷授權,權限也能細分
公司使用 Google WorkspaceSMTP 轉發服務 smtp-relay.gmail.com以 IP 驗證、不必使用密碼,每人每天可寄給 10,000 位收件人

SMTP 轉發是 Google 對 Workspace 較推薦的發信方式。管理員須在管理控制台允許指定 IP,適合主機擁有固定 IP 的網站。

發信失敗時,依照現象逐項排查

出現認證錯誤:通常是密碼填錯

最常見的情況是填成了 Gmail 登入密碼。請改填 16 碼應用程式密碼,並確認沒有多餘空白。

原本能寄、突然中斷:先確認密碼有沒有被改

一旦變更 Google 帳戶密碼,所有應用程式密碼會立刻失效。 實務上最常發生的是員工離職後,人事重設了發信帳戶的密碼。網站表單通知就此中斷,往往過了一週才有人察覺。

較穩妥的做法有兩項:發信改用公司共用帳戶,不要綁在個人帳戶上;帳戶密碼若要更換,應同步重新產生應用程式密碼。

對方收不到:補上 SPF、DKIM 與 DMARC

請對方先查看垃圾郵件匣,並確認收件地址沒有打錯。若使用自有網域發信,還須在 DNS 加上寄件者驗證記錄。

自 2024 年 2 月 1 日起,Google 對寄往 Gmail 的信件有下列要求:

規定所有寄件者大量寄件者(每天寄給個人 Gmail 超過 5,000 封)
SPF、DKIM至少完成其中一項兩項都必須設定
DMARC未強制要求必須設定,政策可為 p=none
TLS 加密傳輸必須必須
垃圾郵件比例低於 0.3%低於 0.3%,建議維持在 0.1% 以下
一鍵退訂未強制要求行銷信件必須提供

驗證未通過的信件,可能進入垃圾郵件匣或直接被退回。使用 @gmail.com 寄出時,Google 會代為簽署;若使用自有網域的 Workspace 信箱,則需請管理員開啟 DKIM。

超過寄送上限:改用 Workspace 或電子報服務

個人 Gmail 每天超過 500 封時,會出現已達寄信上限的提示,約 1 到 24 小時後恢復。若寄信量長期超過上限,就應升級 Google Workspace,或改用電子報服務。定期進行網站維護與監控,也比較能提早發現發信異常。

設定做完後,請記住下面三件事

Gmail SMTP 的設定本身只有三步。上線之後較容易出問題的,通常是下面三點:

  1. 發信改用公司共用帳戶:避免員工離職後改密碼,造成網站通知全部中斷。
  2. 密碼一改就要重產應用程式密碼:Google 帳戶密碼一旦變更,舊的應用程式密碼會立即失效。
  3. 自有網域須設定 SPF 與 DKIM:這是 Google 對所有寄件者的基本要求。

若還想了解架站的其他細節,可參考網站建置完整說明。

另外,許多企業主在修好發信管道之後,才發現根本沒有人填表單。網站有流量卻沒有詢問,問題常常出在表單本身,可再看表單優化做法與有流量卻沒有詢問的處理方式。

WhatsApp
Chatbot Icon ANGLIA AI Chatbot
×
For more efficient responses, please shorten your question