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

收件匣雜亂問題讓人好困擾
看到喜歡的寫作內容和電子報,隨手訂閱起來,但過了幾個月發現信箱怎麼一團亂,有時工作一繁忙根本就沒空去一一閱讀和分類。但又不忍心按下退訂,總想著有一天會去把這些電子報看完🤪
沒關係,你不孤單,其實大家都是這樣。
為了解決這個問題,我花了半小時
快速用 Google Apps Script (GAS) 寫了一個郵件自動標籤分類功能。
Source Code 也開放出來,只需複製貼上到你的 GAS,
找到 emailRules 這個變數,改成你訂閱的電子報即可。
更進階的應用,可以設定成每天或每周定期自動執行
這個功能可以解決哪些問題呢?
-
郵件分類管理
- 根據發件人 Email 地址,自動將郵件分配到特定標籤
-
減少收件匣混亂
- 分類後自動封存 (Archive),避免收件匣累積過多郵件
-
支援多標籤分類
- 一封郵件可擁有多個標籤,方便進一步管理
-
自動標籤管理
- 標籤不存在時,自動建立,無需手動設定
-
適用於已讀 & 未讀郵件
- 所有收件匣內的郵件均會被處理,不管是否已讀
快速上手
只需三步驟:
- 打開 Google Apps Script (
script.google.com
) - 點擊 "新專案"
- 貼上 Source Code,修改 email 規則
- 執行,或設定排程自動運行
覺得實用嗎?
分享給你的朋友,讓他們也能體驗 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);
}