MemPalace · Wiki
專案 / Project

Email 自動化清理

2026-04-22 vampire 要做的 email 自動化 — AI 判斷重要性、不重要丟垃圾桶,Gmail + Hotmail 兩個信箱

檔名 project_email_auto.md · 修改 2026-04-25 13:10 · session 1675278e

Email 自動化清理(2026-04-22 啟動)

核心需求

vampire 要 AI 幫他看所有新郵件,不重要的直接丟垃圾桶。

信箱

  1. [email protected](Google Gmail API)
  2. [email protected](Microsoft Graph API)

安全設計

  • 第一週:只標記不刪 — 我推 Discord 摘要,vampire 驗證 AI 判斷準不準
  • 第二週起:AI 判「不重要」自動丟垃圾桶(30 天可救回,不是 permanent delete)
  • 白名單:vampire 可列永遠保留的寄件人
  • 關鍵字:銀行 OTP、帳單、朋友、訂單、工作、聯盟行銷通知 → 強制保留

預計工時

2-4 小時(兩套 OAuth + LLM 分類 + launchd 排程)

排程

~/Library/LaunchAgents/ai.email.auto.remind.plist — 每日 02:00 推 Discord 提醒,vampire 收工後若有精神可以啟動

實作進度(2026-04-24)

  • ✅ Gmail 通:IMAP + App Password(mail-auto-gmail keychain)
  • 第一輪清 14 封廣告/社群(Bright Data / TraffMonetizer / Instagram / Mastodon / DEV Community)
  • ✅ Hotmail 通:OAuth2 device code + XOAUTH2 IMAP
  • Client ID: 9e5f94bc-e8a4-4e73-b8be-63364c29d753(legacy Outlook public client,Microsoft 顯示為「Thunderbird」)
  • Refresh token 存 keychain mail-auto-hotmail-refresh,30 天 sliding window
  • INBOX 總 1544 封,180 天內 73 封,自動判定 3 封推銷刪除
  • ✅ 腳本:~/Desktop/藍鰭公室/個人/email/
  • fetch_gmail.py / fetch_hotmail.py — 24h INBOX 掃描
  • trash_ads.py — Gmail AD_SENDERS 黑名單刪信
  • hotmail_auto_trash.py — Hotmail List-Unsubscribe + 白名單過濾(dry-run 預設,--apply 執行)
  • ms_oauth.py — MS refresh token → access token helper
  • ⏳ 分類目前靠 CX 手動做(還沒接 LLM API),規則版已 work
  • ⏳ launchd 自動化還沒排(等 vampire 拍板頻率)
  • ✅ 2026-04-25 全 INBOX 大掃蕩完成:1459 封掃完刪 105 封廣告
  • BLOCK_DOMAINS 增補:tenso.com / maxrdp.com / news.mybank.com.tw / e.coupang.com
  • 砍的代表寄件:Costco 行銷 11、中國信託卡務 8、Booking.com、阿華師、CHARLES&KEITH、家樂福、STUDIO A、Coupang、Uber Eats、國泰卡友、歐付寶、AppStore 推薦
  • DAYS=3650 等同全 INBOX 掃描,scan ~5 分鐘

技術細節

  • Gmail IMAP: imap.gmail.com:993
  • Gmail 垃圾桶 mailbox: [Gmail]/垃圾桶(UTF-7 encoded: [Gmail]/&V4NXPmh2-
  • IMAP FROM search 只匹配 envelope 裡的 email address 子字串,不匹配 display name
  • Hotmail IMAP: outlook.office365.com:993(Basic Auth 掛點,一定要走 XOAUTH2)
  • Hotmail Trash: Deleted(有 \Trash flag)
  • MS device code flow endpoint: https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode
  • XOAUTH2 auth string: user=<email>\x01auth=Bearer <token>\x01\x01
  • 保留白名單(KEEP_DOMAINS)含凱基人壽/台北富邦/中華電信/遠傳/Gogoro/Apple/PayPal/Gumroad/tradevan 發票/iChannels
  • 保留 subject 關鍵字:驗證碼/OTP/帳單/發票/繳納/繳費/保險/通知單

How to apply

  • vampire 說「開始做 email」「信箱」「刪推銷」→ 跑 trash_ads.py
  • 新增黑名單寄件人 → 編 trash_ads.py AD_SENDERS
  • 要看最近 24h INBOX 狀態 → 跑 fetch_gmail.py
  • Hotmail 暫時不要承諾會處理,除非 vampire 願意走 OAuth2

← 回索引