top of page

使用應用程式密碼搞定系統 SMTP 登入

  • 作家相片: 駒米
    駒米
  • 8月1日
  • 讀畢需時 2 分鐘

最近想幫系統加個 Email 通知的功能


比較標準的作法嘛,應該是串 AWS SES 或是 Sendgrid 這類專門寄信的服務。但我有兩個理由不想這麼做:第一,部署環境不想弄太複雜;第二,系統的通知信一天頂多幾封,用 SMTP 接 Gmail ,每天 2000 封的額度完全夠用。 ( 我是 Google Workspace ,免費版的額度是 500 封 )


技術債,常常就是這樣自己挖來的。


問題來了,SMTP 得用帳號密碼登入。如果我把 Gmail 帳號密碼直接丟到部署機器上,未來誰能摸到這台機器,誰就能看到我的密碼。雖然不至於裸奔,但也跟只穿條內褲差不多。但要是再去弄個專用的 Google 帳號,那我還不如直接去串專業的 Email 寄送服務。


查了一下,發現 Gmail 有個隱藏功能,叫應用程式密碼(App Password),完美解決這種尷尬場面。當你得在伺服器端用 SMTP 登入 Gmail,但又不想把帳號密碼明晃晃留在伺服器上,這時候就去申請應用程式密碼。這密碼為單一應用產生,還能隨時撤銷,相對安全又方便。


應用程式密碼是什麼?

就是一組 16 位的密碼,長得像個 Token(好啦,其實就是個 Token),只要你不刪掉,它就不會過期。有三種情況會讓它失效:

  • 你自己主動刪了它

  • 帳戶的主密碼改了

  • Google 覺得這密碼用得怪怪的,比如太久沒用或者有風險。


怎麼取得應用程式密碼?

兩個步驟,很簡單:

  1. 設定兩步驟驗證

  2. 建立應用程式密碼


設定兩步驟驗證

先登入 Gmail,點右上角你的頭像,選「管理你的 Google 帳戶」

ree

接著點「安全性」,在「登入 Google 的方式」裡找到「兩步驟驗證」

ree

進到設定頁面,點「啟用兩步驟驗證」就行

提醒一下,開了兩步驟驗證後,每次登入都得靠已認證的裝置。萬一手機沒電或搞丟,帳號可能會被鎖死,所以最好多備幾個後路,比如備用碼或第二個認證方式。
ree


建立應用程式密碼

開完兩步驟驗證後,同一頁面下方會冒出「應用程式密碼」的選項

ree

點進去,隨便輸個應用程式名稱(像是「Side-Project-xxx」),然後按「建立」

這名稱只是幫你自己記錄用的,不用跟實際系統一模一樣,隨便取也行
ree

接著 Google 會吐出一組 16 位的密碼(空格不算),趕緊複製下來,丟進你的 .env 檔案或任何需要登入的地方,這組密碼就能幫你登進 Gmail

注意,這密碼關掉視窗後就再也看不到了!不過萬一搞丟也沒關係,直接砍掉重來一組
ree

記得,這種密碼只能用在 SMTP 之類的服務,別拿去登 Gmail 網頁,登不進去的。


這組密碼怎麼用?比如在 Python 裡,設 smtplib 的密碼,參數就填這組 16 位密碼,SMTP 伺服器填 smtp.gmail.com:587,這樣就能安全寄信了!


有問題嗎?留言跟我聊聊

駒米 JUMI

部落格《JUMI》創辦人 / 系統開發顧問 / 獨立開發者 

時常分享數位工具、系統實務、及讀書心得。10 多年開發與管理經驗,最愛用 Google Workspace 進行團隊的流程優化。曾主持 Kensington、Johnson 等公司的產品開發,建置超過 50 個系統。

Mail-amico
​訂閱電子報 

取得最新的生產力文章及工具包

​感謝你的訂閱!

​追蹤駒米 JUMI
  • Portaly
  • Line
  • 線程

2025 駒米 JUMI | 圖片來源 Freepik, Storyset, Flaticon

bottom of page