接駁一次,之後你講一句「睇下今日有冇新 email」,AI 就自己開你個信箱搵,搵完仲可以幫你草擬回覆。
唔想自己睇文檔?copy 下面呢句,貼落你個 Claude Code(或者 Codex):
讀 https://edwardai-gmail-setup.pages.dev/SOP.md,一步一步帶我接通我個 Gmail。 一次淨係講一步,等我答「做完」先講下一步。
佢會自己讀晒呢份教學,然後好似私人教練咁一步一步帶你行、幫你檢查每步做啱咗未。
想自己跟?下面 5 步每步都寫齊「去邊/撳咩/見到咩就代表成功」,照跟就得。
Claude Code 本身冇內置 Gmail。呢個方法用 Gmail 官方嘅 IMAP/SMTP 通道,行你自己個 Google account —— 即係話你嘅 email 由頭到尾只係喺你部電腦同 Google 之間行,冇經過任何第三方服務。
@gmail.com。python3 --version,出到 Python 3.x.x 就得。出 command not found 或者彈視窗叫你裝嘢,撳「安裝」等佢裝完先開始。叫 Google 發一條「專門畀程式用嘅密碼」俾你部電腦,等佢有權讀你個 Gmail。全程喺瀏覽器做,唔使掂 Google Cloud Console。
去 myaccount.google.com/signinoptions/twosv
幫你個 Google 帳戶加多一層保護
跟住會叫你揀第二重方式(Google 提示/驗證器 app/安全金鑰/備用碼)
✓ 做完個頁面會顯示兩步驟驗證已經開啟
※ 線框示意圖,唔係實際截圖。Google 會改版面,跟掣上面嗰個字搵就唔會錯。
📌 開咗兩步驟驗證唔會阻住呢個工具。應用程式密碼就係專門畀程式用嚟繞過兩步驟驗證嘅,唔會問你攞驗證碼。代價只係:以後你自己喺新裝置登入 Google 要多驗證一次。
🙋 冇手機都做得到 —— 揀驗證器 app(例如 Google Authenticator)或者安全金鑰就得。
去 myaccount.google.com/apppasswords
gmail-py-20260901(後面嗰串係今日日期,日後重新生成分得出邊個係邊個),撳 建立。應用程式名稱:gmail-py-20260901
※ 撳落去會彈 16 個字母,只顯示一次,未 copy 低唔好閂
abcd efgh ijkl mnop 四組)。呢個密碼只顯示一次,閂咗個窗就永遠再睇唔到,直接再建立一個新嘅就得(舊嗰個記得順手撤銷)。未 copy 低唔好閂個窗。abcd efgh ijkl mnop
※ 呢 16 個字母就係你要嘅嘢。copy 低咗先撳「完成」
✓ 填入 .env 嗰陣,中間啲空格要全部刪走
※ 線框示意圖,唔係實際截圖。上面嗰 16 個字母係假嘅示範,你自己嗰個會唔同。
裝個工具,再將你個地址同密碼填入去。
開 Claude Code,貼呢句:
幫我安裝呢個包:https://edwardai-gmail-setup.pages.dev/install.txt
呢一步會做咩:下載一個 Python 檔去 ~/gmail-tool/gmail.py,建一個空白 .env(權限 600),跑一次離線自檢。唔會掂你其他檔案、唔會裝任何套件。
唔想一句過?自己跑呢兩句一樣得:
mkdir -p ~/gmail-tool curl -fsSL https://edwardai-gmail-setup.pages.dev/gmail.py -o ~/gmail-tool/gmail.py
python3 ~/gmail-tool/gmail.py --selftest
✅ selftest passed。rm ~/gmail-tool/.env 再做呢一步 —— 安裝 script 見到 .env 已存在會保留唔覆蓋,舊嗰啲 OAuth key 會令新版讀唔到你個密碼。點開 Terminal:撳 ⌘ + 空白鍵 → 打 Terminal → Enter,會彈一個淨係得文字嘅視窗。⚠️ 呢個唔係 Claude Code,係另一個 app。
貼呢句,會開一個文字編輯器:
open -e ~/gmail-tool/.env
入面已經有 GMAIL_ADDRESS= 同 GMAIL_APP_PASSWORD= 兩行。喺等號後面直接打,唔好另開新行、唔好加引號:
GMAIL_ADDRESS= 後面打你個 Gmail 地址GMAIL_APP_PASSWORD= 後面打第 2 步嗰 16 個字母,中間啲空格全部刪走打完撳 ⌘ + S 存檔,閂咗個視窗。返 Terminal 跑呢兩句 —— 第一句要出 2:
grep -cE '^GMAIL_(ADDRESS|APP_PASSWORD)=.+' ~/gmail-tool/.env
第二句要出 16:
awk -F= '/^GMAIL_APP_PASSWORD=/{print length($2)}' ~/gmail-tool/.env
💡 呢兩句只會出數字,唔會顯示你個密碼。
0 或者 1=有一行等號後面仲係空。出 3 或以上=同一個 key 有多過一行,開個檔刪走重複同空白嗰幾行。15 或者 17=copy 漏咗字或者多咗字,返第 2 步重新生成一個。順手確認個檔淨係你自己讀得到:
chmod 600 ~/gmail-tool/.env
2,第二句出 16。搜尋語法同你平時喺 Gmail 搜尋框打嘅一模一樣。
喺頭先第 4 步嗰個 Terminal 貼(唔好貼落 Claude Code —— 佢預設等 120 秒就會放棄,而首次連線隨時要 1-3 分鐘):
python3 ~/gmail-tool/gmail.py search 'newer_than:3d'
搵到 N 封 = 通咗。見到 (搵唔到:newer_than:3d) = 一樣通咗(登入成功先去到呢句),只係三日內冇新信。見到 ❌ 開頭嗰啲先係未通。python3 ~/gmail-tool/gmail.py search 'from:someone@example.com' python3 ~/gmail-tool/gmail.py search 'is:unread newer_than:7d' python3 ~/gmail-tool/gmail.py read 1234
或者直接用人話同 Claude Code 講:
用 ~/gmail-tool/gmail.py 睇下今日有冇新 email,有嘅話講重點俾我聽
先叫 Claude Code:「幫我喺 ~/gmail-tool/draft.txt 寫一個回覆草稿,內容係…」,然後喺 Terminal:
cd ~/gmail-tool python3 ~/gmail-tool/gmail.py reply 1234 draft.txt --dry-run
--dry-run 會顯示佢將會寄啲乜,但唔會真寄。確認冇問題先除咗佢。
寄完個工具會自動由「寄件備份」讀返實物,顯示完整正文同 SHA-256,等你逐字核對真係寄咗啲乜 —— 唔係話「寄咗」就當寄咗。
Markdown 嗰份最有用 —— 直接貼俾 Claude Code,佢會一步一步帶你行完成個流程,唔使你自己睇文檔。
Google 官方列咗四個情況會冇呢個選項,逐個對:
你部機同時登入緊幾個 Google account,Google 唔知你講緊邊個(個網址會出現 /u/1/ 同 rapt= 之類嘅嘢)。三個做法,逐個試:
① 閂晒其餘所有 Google 分頁,再開過。②條 link 後面加你個地址:
https://myaccount.google.com/apppasswords?authuser=你個@gmail.com
③ 用 AccountChooser 強制指定:
https://accounts.google.com/AccountChooser?Email=你個@gmail.com&continue=https://myaccount.google.com/apppasswords
三個可能,由最常見數起:
awk …length)睇下係咪 16。唔係就重新生成。.env 有重複行。跑第 4 步第一句,出 3 或以上就係重複。開個檔清走。⚠️ 要重新生成之前,先喺同一版撳走舊嗰個 —— 舊嘅唔會自己失效,唔清就會愈積愈多,每個都係全信箱權限。
正常。首次連線 Gmail IMAP 要行一次全信箱索引,1-3 分鐘好平常。
如果係 AI 幫你跑而佢話「timeout」,叫佢用長 timeout(300 秒以上)或者 background 方式重跑。唔好因為 timeout 就以為條線唔通。
同機其他 user 讀得到你個密碼。跑:
chmod 600 ~/gmail-tool/.env
Google 大約每半年改一次版面。跟掣上面嗰個字搵(兩步驟驗證、應用程式密碼、建立)—— 位置會搬,字通常唔變。
搵唔到應用程式密碼個入口,直接打呢條網址:myaccount.google.com/apppasswords
呢份教學啲指令係 Mac 寫法。Windows 要注意:python3 通常要改成 python;~/gmail-tool/ 對應 C:\Users\你個名\gmail-tool\;第 4 步開個檔改用 notepad %USERPROFILE%\gmail-tool\.env。
⚠️ 如果你要自己新建 .env:記事本存檔嗰陣「存檔類型」要揀「所有檔案」,檔名打 .env,否則會變成 .env.txt 用唔到。存完喺檔案總管開「檢視 → 副檔名」確認個名真係 .env。
想叫 Claude Code 幫手,只可以叫佢「幫我開 %USERPROFILE%\gmail-tool\.env」,你自己喺記事本入面打兩個值。個密碼永遠唔好貼落 chat。
| 邊個睇到你啲 email? | 只有你部電腦。條線係你部機直接打 Google,冇經第三方 server |
|---|---|
| 啲鎖匙放咗喺邊? | ~/gmail-tool/.env,你部機本地。唔好將呢個檔 upload、唔好貼落 chat、唔好放入 Git |
| 檔案權限? | ~/gmail-tool/.env 應該係 -rw-------。用 ls -l ~/gmail-tool/.env 對,唔係就跑 chmod 600 ~/gmail-tool/.env |
| 權限有幾大? | ⚠️ 好大 —— 讀晒同寄晒你個 Gmail,而且繞過兩步驟驗證。應用程式密碼冇得限制範圍,呢個係佢換嚟簡單嘅代價 |
| 會唔會過期? | ⚠️ 唔會自己過期 —— 即係一旦洩漏,佢永遠有效,直到你人手撤銷。呢個同 Google 登入密碼唔同:登入密碼有兩步驟驗證兜底,呢個冇 |
| 點收返個權限? | myaccount.google.com/apppasswords → 搵到你嗰個 → 撤銷。即刻失效,唔影響你個 Google 密碼 |
| 懷疑洩漏咗點算? | ① 即刻撤銷 → ② 開 ~/gmail-tool/.env 清走嗰行 → ③ 如果你曾經喺 Terminal 打過個密碼,開 ~/.zsh_history 刪走嗰行 → ④ 去 myaccount.google.com/security 睇最近活動。唔使改 Google 密碼 |
呢個工具用 IMAP(讀)同 SMTP(寄)連 Google,用應用程式密碼做普通 LOGIN 認證。全部係 Python 內置功能,冇裝任何第三方套件。
點解唔用 OAuth?OAuth 係為「第三方 app 代好多唔同用戶存取」而設計。你呢個場景係:你自己一個人、喺你自己部機、讀你自己個信箱 —— 冇第三方。硬套 OAuth 要開 Google Cloud project、行 consent screen、建 client、下載 JSON、過「未驗證應用程式」畫面,足足九步,而且個 app 留喺 Testing 狀態嘅話發出嚟嘅鎖匙 7 日就過期,一個禮拜之後成套嘢突然唔 work,錯誤訊息仲完全唔會指向真因。
代價要講清楚:① 應用程式密碼繞過兩步驟驗證;② 佢永不過期(OAuth 授權可以喺 myaccount.google.com/permissions 一次過收晒);③ 個 secret 要你親手 copy 一次,所以會經過剪貼簿 —— 呢個係佢唯一一個真正嘅新風險位。
至於權限範圍:舊版 OAuth 一樣用緊 https://mail.google.com/ 全信箱 scope,冇變闊。順帶一提,改咗之後 AI 由頭到尾唔會掂你任何 secret —— 舊版係要 AI 幫你讀個 client JSON 再寫入 .env 嘅。
三條寫死咗嘅格式規則(因為呢啲位好易出錯):
好多程式寄 reply 會將原文抄一次落 body 底部,Gmail 顯示出嚟就係一堆 > 引言,好核突。其實 email 串連係靠 In-Reply-To / References 兩個 header,同 body 完全無關 —— 唔抄原文一樣接得返原本條對話。
淨係寄純文字嘅話,Gmail 會自己幫你摺行,中文摺出嚟好醜。寄 HTML 版就可以自己用 <p> 控制段落。
SMTP 冇報錯 ≠ 寄咗啱嘢。所以寄完會即刻去「寄件備份」讀返,print 完整正文同 SHA-256 俾你逐字睇。
行到未?有問題直接 IG DM 我 💬
更多 AI 慳時間玩法 → @edwardai.tech