1. 引言
今天要和大家分享的是一個利用 Google Apps Script 自動化處理 Gmail 附件的案例。
你有沒有遇過這樣的情況——
每天收一堆包含報表或文件的郵件,
然後要手動下載、整理,甚至把它們上傳到 Google Drive?
重複的動作不僅讓人頭痛,還浪費時間。
這篇文章要介紹的解決方案,就是幫助你把這些重複任務自動化。
透過 Google Apps Script,
我們可以讓程式自動檢查信箱中符合條件的郵件,
然後將郵件內的附件自動另存到 Google Drive 的指定資料夾中。
是不是很棒?
這樣一來,你就能把時間花在更有價值的工作上,
而不是處理瑣碎的手動任務。
2. 案例背景
某位客戶,他每天都會收到供應商寄來的報表郵件。
每封郵件的附件都是 Excel 檔,記錄著每天的銷售數據。
客戶得花不少時間來整理這些檔案,
依照不同供應商的名稱建立資料夾,
把每個檔案都放到對應的 Google Drive 資料夾中。
如果是一天兩封郵件還好。
但一旦郵件數量超過十幾封,甚至更多,
手動處理起來就會變得非常麻煩。
而且還容易出錯。
這樣的情況下,傳統的手動方式不僅效率低下,
還可能因為疏忽而遺漏某些重要附件。
為了解決這個問題,
我們嘗試使用 GenAI 來輔助撰寫 Google Apps Script,
藉此自動化整個流程。
3. 解決方案:如何使用 GenAI
首先,我們可以請 GenAI 幫我們生成一個簡單的 Google Apps Script 程式碼,
來自動抓取郵件附件。
一開始的 prompt 可以這樣寫:
「幫我撰寫一個 Google Apps Script,
它可以從 Gmail 中找到主旨包含 ‘銷售報表’ 的郵件,
並將郵件內的附件儲存到 Google Drive 中的 ‘銷售報表’ 資料夾。」
接著,GenAI 會產生一段程式碼,如下所示:
function saveAttachments() {
var threads = GmailApp.search('subject:銷售報表');
var folder = DriveApp.getFolderById('YOUR_FOLDER_ID'); // 將 'YOUR_FOLDER_ID' 替換為實際資料夾 ID
threads.forEach(function(thread) {
var messages = thread.getMessages();
messages.forEach(function(message) {
var attachments = message.getAttachments();
attachments.forEach(function(attachment) {
folder.createFile(attachment);
});
});
});
}
這段程式碼做的事情很簡單:
找到主旨包含「銷售報表」的郵件,
並將附件儲存到指定資料夾。
不過這只是最基本的功能。
接著,我們可以一步步優化。
例如,我們可以告訴 GenAI 加入日期篩選,避免下載到過期郵件的附件:
「在程式碼中加入條件,只下載本週的郵件附件。」
GenAI 生成的程式碼會變成這樣:
function saveAttachments() {
var threads = GmailApp.search('subject:銷售報表 after:YYYY/MM/DD'); // YYYY/MM/DD 替換為本週的起始日期
var folder = DriveApp.getFolderById('YOUR_FOLDER_ID');
threads.forEach(function(thread) {
var messages = thread.getMessages();
messages.forEach(function(message) {
var attachments = message.getAttachments();
attachments.forEach(function(attachment) {
folder.createFile(attachment);
});
});
});
}
你看,一步一步,
功能變得更完整了。
透過調整 prompt,我們可以逐步加上更多條件與功能,
比如依郵件寄件人篩選、附件類型過濾等等。
4. Google Apps Script 解說
剛才 GenAI 生成的程式碼,其實並不難懂。
簡單來說,
它會從 Gmail 中找到所有符合條件的郵件,
然後一封一封檢查。
接著,從每封郵件中提取出所有的附件,
並將它們存到我們指定的 Google Drive 資料夾中。
你可以把這段程式碼貼到 Google Apps Script 編輯器中,
並設置一個觸發器 (trigger)。
這樣程式就會定期自動執行,而不用手動執行。
設定方式也很簡單。
只要點擊「觸發器」選項,
設定一個時間驅動觸發器,
比如每天早上 9 點運行一次。
就這麼簡單,你的自動化流程就完成了。
5. 測試與結果
接下來,我們就要測試看看程式是否運作正常。
你可以先寄幾封測試郵件到自己的 Gmail,確認主旨和附件都符合條件。
然後運行程式。
打開你的 Google Drive 資料夾,看看是否有成功儲存這些附件。
如果有,那就大功告成。
如果沒有,可以去 Apps Script 的日誌 (Logs) 查看是否有錯誤訊息。
根據日誌中的錯誤提示來修正程式碼,
直到它能成功執行為止。
6. 進階提示
這個案例還有很多進階的優化空間。
例如,你可以讓程式自動根據郵件主旨建立子資料夾,
把不同供應商的附件分門別類地儲存起來。
又或者,可以加上 Google Sheets 的整合功能,
讓程式自動把附件內容讀取並匯入到 Google Sheets 中。
這樣你就不需要再手動開啟每個附件檔案,
來檢查裡面的內容。
有了這些進階技巧,
你可以把這個自動化流程擴展得更強大,
處理更多情境下的需求。
7. 結論
透過 GenAI 和 Google Apps Script,
我們可以輕鬆建立起自動化流程。
即使你沒有寫程式的經驗,
只要學會如何提出好的 prompt,
你就能生成符合需求的程式碼。
本篇介紹的自動化流程,
可以幫助你省下大量手動下載、整理郵件附件的時間。
希望你可以從這個案例中獲得靈感,
進而思考如何把這些技巧應用到自己的工作中。
如果有任何問題,別忘了隨時來找我討論!