{"repo":"notoriouslab/gmail-statement-fetcher","free":true,"listed":false,"github":"https://github.com/notoriouslab/gmail-statement-fetcher","clone":"git clone https://github.com/notoriouslab/gmail-statement-fetcher.git","description":"Downloads bank statement PDFs from Gmail. Config-driven — add any bank via JSON, no code changes. IMAP or OAuth 2.0.自動從 Gmail 下載銀行對帳單 PDF。規則由 JSON 設定檔驅動，新增銀行不需改程式碼。支援 IMAP 與 OAuth 2.0，內建去重機制。","language":"Python","stars":19,"topics":["automation","bank-statement","gmail","imap","oauth","pdf","python","taiwan"],"license":"MIT","category":"auth-billing-email","readme_excerpt":"gmail-statement-fetcher 自動從 Gmail 下載銀行對帳單 PDF，設定驅動、內建去重、支援 IMAP 與 OAuth 雙模式。 需要 Python 3.9+ · 屬於 notoriouslab 開源工具組的一員。 English README --- 為什麼需要這個工具 大多數 Gmail 對帳單工具都是單一銀行的臨時腳本，換一家銀行就得改程式碼。這個工具是 設定驅動 的：新增任何銀行只要在 JSON 加一個 entry，不需要動程式碼。任何 AI agent 框架都可以透過 shell 呼叫，附帶 SKILL.md 讓 OpenClaw 直接整合使用。 特色 說明 ------ ------ 多銀行支援 JSON 設定驅動，新增銀行不改程式碼 去重機制 UID-based，同一封信永遠只下載一次 IMAP 模式 純標準函式庫，零安裝，適合無頭伺服器 OAuth 2.0 gmail.readonly 最小權限範圍 ZIP 解壓縮 標準函式庫，含 ZIP bomb 防護（100 MB 上限） PDF 解密 選裝 pikepdf，密碼存 .env 不進 config 標準化檔名 永豐銀行 信用卡對帳單 2026 02.pdf 預覽模式 --dry-run 先看匹配結果再下載 原子寫入 tempfile + os.replace() ，不產生半殘檔案 隱私安全去重 去重記錄只存主旨 SHA-256 雜湊，不存原始主旨 安全強化 token 0o600 權限、日誌遮罩帳號、log injection 防護 --- 快速開始 預覽匹配結果不實際下載： --- 認證方式 IMAP + App Password — 伺服器推薦 適合 cron 排程、無頭伺服器，無需瀏覽器，純標準函式庫。 1. 啟用 Google 帳號的兩步驗證 2. 前往 安全性 → 應用程式密碼 ，為「郵件」建立應用程式密碼 3. 在 .env 設定： AUTH METHOD=imap 、 GMAIL USER 、 GMAIL APP PASSWORD OAuth 2.0 — 個人使用推薦 使用 gmail.readonly 最小權限範圍，更安全但需要第一次瀏覽器授權。 1. 在 Google Cloud Console 建立專案 2. 啟用 Gmail API 3. 建立 OAuth 憑證（桌面應用程式）→ 下載 credentials.json → 放在專案根目錄 4. 安裝依賴： pip install google-auth-oauthlib google-api-python-client 5. 在 .env 設定 AUTH METHOD=oauth 6. 第一次執行會開啟瀏覽器授權 → 產生 token.json 無頭伺服器 ：在本機完成第一次 OAuth 授權後，將 token.json 複製到伺服器並設定 OAUTH TOKEN=/path/to/token.json 。請備份此檔案，遺失後需重新授權。 --- 設定說明 設定檔格式 以 開頭的 key（如 example en ）會被忽略，可用於停用或範本條目。 參見 config.example.json 內含現成的台灣銀行設定。 檔名格式 ： {short name} {doc type} {YYYY} {MM}.pdf 月份固定補零（ 02 而非 2 ）。 subject date pattern 擷取原始數字，程式自動補零。 機密管理 所有密碼只能放在 .env ，不可放在 config.","default_branch":null,"files":null,"tree":[],"storefront":"/r/notoriouslab","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/notoriouslab/gmail-statement-fetcher/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}