還在每天手動分類信件? 來試試信件分類自動化!

還在每天手動分類信件? 來試試信件分類自動化!

收件匣雜亂問題讓人好困擾

看到喜歡的寫作內容和電子報,隨手訂閱起來,但過了幾個月發現信箱怎麼一團亂,有時工作一繁忙根本就沒空去一一閱讀和分類。但又不忍心按下退訂,總想著有一天會去把這些電子報看完🤪

沒關係,你不孤單,其實大家都是這樣。

為了解決這個問題,我花了半小時
快速用 Google Apps Script (GAS) 寫了一個郵件自動標籤分類功能。

Source Code 也開放出來,只需複製貼上到你的 GAS,
找到 emailRules 這個變數,改成你訂閱的電子報即可。

更進階的應用,可以設定成每天或每周定期自動執行


這個功能可以解決哪些問題呢?

  1. 郵件分類管理

    • 根據發件人 Email 地址,自動將郵件分配到特定標籤
  2. 減少收件匣混亂

    • 分類後自動封存 (Archive),避免收件匣累積過多郵件
  3. 支援多標籤分類

    • 一封郵件可擁有多個標籤,方便進一步管理
  4. 自動標籤管理

    • 標籤不存在時,自動建立,無需手動設定
  5. 適用於已讀 & 未讀郵件

    • 所有收件匣內的郵件均會被處理,不管是否已讀

快速上手

只需三步驟:

  1. 打開 Google Apps Script (script.google.com)
  2. 點擊 "新專案"
  3. 貼上 Source Code,修改 email 規則
  4. 執行,或設定排程自動運行

覺得實用嗎?

分享給你的朋友,讓他們也能體驗 Gmail 自動分類的便利。
訂閱我的電子報,我會分享更多自動化工作流應用。

function classifyEmails() {
  const emailRules = {
    "hello@zacphua.com": ["Zac Phua"],
    "itstysonchen@substack.com": ["斜槓時刻"],
    "ckchuang@substack.com": ["CK 技術週報"],
    "hello@explainthis.io": ["ExplainThis"],
    "explainthis@substack.com": ["ExplainThis"],
    "keyman@copywriter.com.tw": ["林育聖"],
    "support@johntool.com": ["阿璋"],
    "tzangms@substack.com": ["海總理"],
    "raymondhou@raymondhouch.com": ["雷蒙"],
    "support@leadingbrandacademy.com": ["老K"],
    "flyingchicken@mail.beehiiv.com": ["Flying Chicken"],
    "ihower@aihao.tw": ["愛好 AI Engineer"],
    "contact@businessyee.com": ["商益"],
    "blocktrend@substack.com": ["區塊勢"],
    "service@frankchiu.io": ["法蘭克"],
    "gipi@ghost.io": ["Gipi"],
    "masterofnonewithsunnyc@substack.com": ["無用之用"],
    "ted@iyuyan.net": ["Ted Chen"],
    "postmaster@reynoldconsult.com": ["AI 白話文"],
    "donotreply@godaddy.com": ["GoDaddy"],
    "academy@bacostreet.com.tw": ["貝克街"],
    "iamhlb@substack.com": ["布丁"],
    "chris@gomakethings.com": ["Go Make Things"],
  };

  const searchQuery = "in:inbox";
  const threads = GmailApp.search(searchQuery);

  threads.forEach(thread => {
    const messages = thread.getMessages();
    messages.forEach(message => {
      const sender = message.getFrom().match(/<(.+?)>/);
      const email = sender ? sender[1] : message.getFrom();
      
      if (emailRules[email]) {
        emailRules[email].forEach(labelName => {
          applyLabel(thread, labelName);
        });
        thread.moveToArchive();
      }
    });
  });
}

function applyLabel(thread, labelName) {
  let label = GmailApp.getUserLabelByName(labelName);
  if (!label) {
    label = GmailApp.createLabel(labelName);
  }
  thread.addLabel(label);
}

Read more

用 Google Apps Script 模擬 Email 開信:破解追蹤像素的實驗

用 Google Apps Script 模擬 Email 開信:破解追蹤像素的實驗

行銷領域中,「開信率」一直是評估 EDM 成效的重要指標。這個數據看似簡單,背後卻藏有許多技術機制與行為假設。這次我們透過一個技術實驗,重新檢視開信率的追蹤機制,並嘗試以 Google Apps Script 模擬開信行為。 開信追蹤的基本原理 大多數 EDM 系統會在信件中悄悄嵌入一張透明的 1x1 像素圖片,也就是所謂的「追蹤像素」。當使用者打開這封信,信件的 HTML 被載入,這張圖片也會發送請求給伺服器,藉此判定收件人「已開信」。 這種做法的關鍵在於:是否成功觸發伺服器上的圖片載入請求。只要圖片被讀取,就被視為信件被閱讀,開信率也就因此提升。 技術實驗:模擬開信行為 我們發想了一個技術實驗:如果我們不是真人開信,而是用程式去抓信件的 HTML 內容,然後主動對圖片發送請求,是不是就等同於「開信」了? 在這個實驗中,我們使用 Google Apps Script

By Reynold Cheng
用白話文解釋 CoT(Chain of Thought)

用白話文解釋 CoT(Chain of Thought)

什麼是 CoT(Chain of Thought)? 如果你在網路上看到某些 Prompt 教學,告訴你要在提示詞內加入 "think step by step",這就是 CoT 的典型用法! 如果用比較學術的解釋來說,CoT 是一種 提升大型語言模型(LLM)推理能力的技術,它讓模型在回答問題時像人類一樣逐步思考,而不是直接給出答案。 但隨著 LLM 的演進,CoT 可能變得不再必要。在較新的 Reasoning 模型(如 o1、o3-mini、DeepSeek R1)上,使用 CoT 不一定能提高答案品質,甚至可能影響推理效果。這些模型已內建強大的推理能力,不需要額外的「一步步思考」提示。 GPT 模型

By Reynold Cheng
Cursor Rules 教學:如何讓 AI 更理解你的開發需求?

Cursor Rules 教學:如何讓 AI 更理解你的開發需求?

不論你是剛開始學習AI寫程式的小白,或是早就有開發經驗的工程師,應該都有聽過,或是正在使用 Cursor。除了AI自動補全程式碼功能之外,其實還有一個小細節,可以大幅提升AI 產code的品質。 Cursor Rules 是什麼? Cursor Rules 是一組自訂指令,用來引導 Cursor 搭配的LLMs。它能夠調整 AI 在解讀程式碼、提供建議和回應時的行為,你可以想像成是一種引導AI的 prompt 或指示。 如何建立與使用 Cursor Rules? 你可以透過兩種方式來建立 Cursor Rules: 1. Project Rules:這也是Cursor團隊推薦的作法 2. Global Rules:在 Cursor 設定中的 「General」 > 「Rules for AI」 進行設定。 * Semantic Descriptions: 每條規則都可以包含什麼時候應該使用的描述

By Reynold Cheng
主觀選擇 vs 客觀必然

主觀選擇 vs 客觀必然

工作流程自動化的需求,究竟是 主觀的選擇 還是客觀的必然? 但不論是哪一種,最好不要抱持著 "我是為了你好"的心態 而是需要站在對方的立場去思考,覺得不需要自動化的人,心裡會怎麼想? 主觀的選擇 ↓↓↓ 1. 我多花點時間就可以處理,沒必要自動化 2. 學習自動化的時間 > 省下的時間 3. 改變帶來的不確定性,例如怕效率提高會被賦予更多工作 客觀的必然 ↓↓↓ 1. 是否存在大量重複性的工作 & 任務 ex. 例如財務報表的對帳與審核 2. 是否會隨公司的營業規模擴大而變成瓶頸? ex. 廣告數據分析,當需要整理的後台投廣數據從 10 個變成 100 個 💡在「主觀的選擇」與「客觀的必然」之間找到共同交集, 才能讓習慣手動作業的人,接受不同的作法。 方法: 1. 量化時間成本

By Reynold Cheng