接駁一次,之後你講一句「睇下今日有冇新 email」,AI 就自己開你個信箱搵,搵完仲可以幫你草擬回覆。
Claude Code 本身冇內置 Gmail。呢個方法用 Google 官方 API,行你自己個 Google account 授權 —— 即係話你嘅 email 由頭到尾只係喺你部電腦同 Google 之間行,冇經過任何第三方服務。
叫 Google 發一條「鎖匙」俾你部電腦,等佢有權讀你個 Gmail。八步,呢個階段最長。
去 console.cloud.google.com/projectcreate
Project name 打 gmail-connect,撳 CREATE。
去 console.cloud.google.com/apis/library/gmail.googleapis.com
撳 ENABLE。見到嘅係 MANAGE 就代表已經開咗,直接落下一步。
去 console.cloud.google.com/apis/credentials/consent
撳 Get started。
📌 Google 舊版叫呢度做「OAuth consent screen」,新版改咗名叫「Google Auth Platform」。見到邊個名都係同一樣嘢。
| 格 | 填咩 |
|---|---|
| App Information | App name 打 Gmail Connect;User support email 撳 ▼ 揀你個 Gmail |
| Audience | 揀 External |
| Contact Information | 打返你個 Gmail |
| Finish | 剔 I agree to the Google API Services: User Data Policy |
最後撳 Create。
建完之後你會返到 Google Auth Platform。睇左邊嗰行選單。
撳 Audience → 拉到下面搵 Test users → 撳 ADD USERS → 打你個 Gmail → SAVE
403 access_denied,而個錯誤訊息唔會話你知係因為呢個。左邊選單撳 Clients → 撳 CREATE CLIENT
| 欄位 | 揀/填 |
|---|---|
| Application type | Desktop app |
| Name | claude-code |
撳 CREATE。
📌 點解要揀 Desktop app:呢個類型 Google 會自動接受 http://localhost 任何 port,你唔使自己去加 redirect URI。揀錯第二個 type 就要手動加,好易出錯。
撳彈窗下面嘅 Download JSON,個檔會落你 Downloads folder。
打開 Downloads folder,應該見到一個好長名嘅檔,類似 client_secret_1234567890-xxxx.apps.googleusercontent.com.json
見到就得,唔使開佢。
三步。全部喺 Claude Code 入面貼,唔使開 Terminal。
開 Claude Code,貼呢句:
幫我安裝呢個包:https://edwardai-gmail-setup.pages.dev/install.txt
我啱啱喺 Google Cloud Console download 咗個 OAuth client JSON,喺我 Downloads folder。 幫我讀個檔,將 client_id 同 client_secret 寫入 ~/gmail-tool/.env, 再加返 GMAIL_ADDRESS 係我個 Gmail 地址。
AI 會問你個 Gmail 地址,答佢就得。
💡 用呢個方法唔使你自己抄 Client ID —— 嗰串嘢又長又有好多 1 同 l,人手抄十次有九次錯。
python3 ~/gmail-tool/gmail.py auth
呢個係正常嘅。因為呢個 app 係你自己頭先建嘅,未經 Google 官方審核 —— 但佢只係你自己一個人用。
撳 進階 → 前往 Gmail Connect(不安全) → 繼續
✅ refresh token 已寫入 .env 同 ✅ IMAP 連線成功。🎉 呢步一世做一次,之後唔使再撳。
搜尋語法同你平時喺 Gmail 搜尋框打嘅一模一樣。
python3 ~/gmail-tool/gmail.py search '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,有嘅話講重點俾我聽
python3 ~/gmail-tool/gmail.py reply 1234 draft.txt --dry-run
--dry-run 會顯示佢將會寄啲乜,但唔會真寄。確認冇問題先除咗佢。
寄完個工具會自動由「寄件備份」讀返實物,顯示完整正文同 SHA-256,等你逐字核對真係寄咗啲乜 —— 唔係話「寄咗」就當寄咗。
Markdown 嗰份最有用 —— 直接貼俾 Claude Code,佢會一步一步帶你行完成個流程,唔使你自己睇文檔。
唔使理。呢份教學由頭到尾冇用 App Password,行嘅係 OAuth。有啲 Google account 唔提供 App Password(同你有冇開兩步驗證無關),但 OAuth 一定行得通。
99% 係第 5 步冇做。返去 Google Auth Platform → Audience → Test users,加自己個 email 落去,再跑多次 auth。
條鎖匙俾人撤銷咗(或者你喺 myaccount.google.com/permissions 度移除咗個 app)。重新跑一次:
python3 ~/gmail-tool/gmail.py auth
Google 對同一個 app 只會發一次 refresh token。去 myaccount.google.com/permissions 搵到你個 app,移除佢,再跑多次 auth。
Google 大約每半年改一次版面。跟掣上面嗰個字搵(Get started、CREATE CLIENT、ADD USERS)—— 位置會搬,字通常唔變。
| 邊個睇到你啲 email? | 只有你部電腦。條線係你部機直接打 Google,冇經第三方 server |
|---|---|
| 啲鎖匙放咗喺邊? | ~/gmail-tool/.env,你部機本地。唔好將呢個檔 upload、唔好貼落 chat、唔好放入 Git |
| 點收返個權限? | myaccount.google.com/permissions → 搵到 Gmail Connect → 移除。即刻失效 |
| 權限有幾大? | 讀同寄。要收窄嘅話可以改用 Gmail REST API 嘅窄權限,但要改個工具嘅寫法 |
呢個工具用 IMAP(讀)同 SMTP(寄)連 Google,用 OAuth 2.0 嘅 XOAUTH2 方式認證。全部係 Python 內置功能,冇裝任何第三方套件。
三條寫死咗嘅格式規則(因為呢啲位好易出錯):
好多程式寄 reply 會將原文抄一次落 body 底部,Gmail 顯示出嚟就係一堆 > 引言,好核突。其實 email 串連係靠 In-Reply-To / References 兩個 header,同 body 完全無關 —— 唔抄原文一樣接得返原本條對話。
淨係寄純文字嘅話,Gmail 會自己幫你摺行,中文摺出嚟好醜。寄 HTML 版就可以自己用 <p> 控制段落。
SMTP 冇報錯 ≠ 寄咗啱嘢。所以寄完會即刻去「寄件備份」讀返,print 完整正文同 SHA-256 俾你逐字睇。
行到未?有問題直接 IG DM 我 💬
更多 AI 慳時間玩法 → @edwardai.tech