發佈時間: 2025-11-1 最近更新: 2025-11-3字數 1496閱讀時間 4 分鐘

type
status
date
slug
summary
tags
category
icon
password
💡
透過 Google Sheet 與 Google Apps Script 結合,打造一套可視化條件設定(特定主旨、寄件者或網域的信件)、定時清理 Gmail 的自動化系統,有效釋放信箱空間。

研究背景

由於 Gmail 信箱時常接收大量各種網路服務、 APP 、網路銀行等登入通知、付款明細、信用卡帳單、驗證碼、活動電子報等系統信擠爆!這些具時效性的信件,每日自動湧入但通常不具備長期保存價值,卻長期佔據 Gmail 空間,影響使用體驗( Google 家的各式服務空間是連通共用的,例:Google Drive)。
因此想針對系統信固定特徵的性質,設計一自動化清理小系統,幫助自己定期刪除不必要信件,再由垃圾桶定期將30天以上的垃圾丟掉,把儲存空間自動空出來!

主要功能

目標是讓 Gmail 自動刪除指定條件的信件,而且不需要進入 Gmail 操作,只要在 Google Sheet 上設定好條件,就會每天定時自動執行。
大致上分為:條件設定介面(Google Sheet「 Rules 」工作表)、自動執行邏輯(Google Apps Script)、刪除紀錄與除錯機制(Google Sheet「 log 」工作表),這三塊。
Google Apps Script 定時觸發負責執行刪除任務 → 從試算表讀條件規則 → 查 Gmail 信箱 → 篩選 → 丟進垃圾桶。

條件設定介面(Google Sheet「Rules」工作表)

  • 支援輸入主旨關鍵字、比對方式(完全符合 / 包含)、信件分類、天數條件等。
  • 可設定是否只刪除收件匣、是否刪除整串對話。
  • 可自由啟用或停用某一條規則。

自動執行邏輯(Google Apps Script)

  • 排程讓時間觸發器定時執行對應信件類別刪除函式。
  • 符合條件的信件會自動刪除,並記錄 log。

刪除紀錄與除錯機制(Google Sheet「log」工作表)

  • 每次執行的結果寫入 Log 表內,顯示每次任務的各條規則各自刪了多少封信。
  • 方便觀察執行成果與進行除錯。

設計與實作技術

系統的核心設計是「讓使用者透過 Google Sheet 設定篩選規則,讓 Google Apps Script 自動執行刪除任務」

條件設定介面(Google Sheet「Rules」工作表)

notion image
以試算表內工作表作條件管理設定區:
  • Enabled:控制是否啟用該條件
  • Category:自訂類別(如:login、payment、2FA、news)
  • Field:比對欄位(如:主旨subject / 寄件人from / 網域domain
  • Match:比對方式(如:包含contains / 完全符合exact
  • Pattern:欲比對的文字內容
  • AgeDays:刪除幾天以前的信件,>= N 天才可刪;0 =不限制
  • NewerThan:搜尋特定時間範圍內信件(如 30d 為今日往前30天內);0 =不限制
  • OnlyInbox:TRUE 只掃收件匣;FALSE 全郵件
  • DeleteWholeThread:TRUE 命中一封就整串丟;FALSE 只刪命中的單封
  • Note:使用者備註

自動執行邏輯(Google Apps Script)

  • 類別入口:各類別有單獨的刪除函式
  • 建立排程(時間觸發):可依各類別性質安排各自的觸發時間與頻率。
  • 批次處理
  • 系統時間限制處理

開發問題筆記

  • 技術棧之選擇:Google Sheet + Google Apps Script
    • 因為本身 Gmail 就同為G家的服務之一,支援性高。
    • 考量若以其他程式、n8n 等實作,未來維護上可能沒有比用 Google Sheet 擴充規則來的方便。
  • Google Apps Script 單次執行上限為 6 分鐘(免費帳號),導致刪除信件會有限。
    • 增加批次功能、函式設定5分鐘即跳出等功能:
      • 記錄當前執行進度(游標)
      • 使換批次時,每個類別可接續上次未完成進度往下進行。
  • 改善使用者體驗:
    • Google Sheet 內的「選項型」欄位,使用下拉選單、核取方塊(替代TRUE/FALSE)等,且設定不同顏色區分,友善使用者作選項切換。
    • 使用 Google Sheet 內的 app script 綁定試算表,同時也設定試算表 UI,平時有需要可進本表在畫面上方直接點選作手動啟動。
      • notion image
    • 各刪除規則的函式皆補上appendLog_,讓 Log 工作表完整記錄每次所執行的刪除任務。

    實測效果

    log 的紀錄
    log 的紀錄
    Gmail 信箱垃圾桶狀況,可見刪除任務有成功。
    Gmail 信箱垃圾桶狀況,可見刪除任務有成功。

    小小後記

    會作這個小工具,是近期自己又遇到一實際痛點——我的儲存空間容量快要爆掉了! 我的容量常常在上限邊緣徘徊,每每都拖到快沒空間用,才匆匆著手花時間人工處理。 (特別是那些各家銀行、各大平台服務的「系統通知」信件,通常數量很多、有時效性、沒有保存必要😅)
    現在,能透過小工具解決這件「麻煩又非常花時間」的動作,舒緩我常常雲端空間不夠的容量焦慮,真的是很值得的小事!

    贊助支持鼓勵

    如果這篇文章對你有所幫助或解惑,歡迎您賞我一杯啤酒🍻
    Loading...
    小程式大學問:臺北市登革熱病媒蚊密度監測儀表板

    小程式大學問:臺北市登革熱病媒蚊密度監測儀表板

    一站式互動儀表板,協助民眾與防疫單位即時掌握病媒蚊風險熱區


    蘋果生態系捷徑+NFC+n8n自動化:隨手絲滑記錄每日飲水量

    蘋果生態系捷徑+NFC+n8n自動化:隨手絲滑記錄每日飲水量

    使用蘋果「捷徑」、NFC貼紙,將飲水量傳送到n8n自動化流程,記錄與計算後再發送通知。