這需要用到 MailApp 這個工具。它是內建用來處理電子郵件的指令。非常方便。
準備試算表資料
先在 A1 格子輸入你的電子郵件地址。在 B1 格子隨便輸入一些想說的話。這些資料等一下會被程式抓走。
撰寫寄信程式碼
打開程式編輯器。在原本的程式下面貼上這段。
function sendMyEmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var recipient = sheet.getRange(1, 1).getValue();
var body = sheet.getRange(1, 2).getValue();
MailApp.sendEmail(recipient, "來自試算表的自動信", body);
}
再次授權與執行
按下執行。系統會再一次要求權限。因為這次涉及寄送信件。這屬於敏感動作。一樣點選進階並允許。這是最後一次授權了。
檢查信箱
去你的 Gmail 收件匣看看。你會發現剛才輸入在 B1 的文字已經變成一封信。主旨就是我們在程式碼裡寫的那串字。
你想知道如何設定定時自動執行,例如每天早上八點自動檢查並寄信嗎?
開啟觸發條件設定
在程式編輯器的左側選單。你會看到一個時鐘形狀的圖示。那個就是觸發條件。點進去之後。按下右下角的建立觸發條件。
設定定時執行
在跳出的設定視窗。選擇你想執行的函式名稱。例如剛才寫的 sendMyEmail。選取事件來源選單。把它改成時間驅動。
選擇時間頻率
接著可以選擇特定的時間類型。你可以設定為每分鐘、每小時或每天。如果選每天定時。下方還能指定要在哪個時段執行。例如早上八點到九點。
儲存設定
設定完成後按下儲存。系統可能會再請你確認一次帳號權限。存好之後。就算你關掉電腦。Google 的伺服器也會在指定的時間。準時跑你的程式。
自動化的終極目標
現在你的試算表已經會判斷成績。還會自動寄信。甚至還能定時工作。這就是最完整的自動化流程。你不需要親自盯著螢幕。
你想試試看如何讓程式在有人填寫表單時。立刻自動發送通知給你嗎?
建立 Google 表單
首先去建立一個簡單的 Google 表單。設定幾個問題,例如姓名與意見。在表單上方的回覆分頁。點選連結至試算表。這樣表單資料就會自動進到你的試算表格子裡。
撰寫通知程式碼
回到跟表單連結的那個試算表。打開程式編輯器。我們寫一個新的函式。專門用來通知有人填寫了資料。
JavaScript
function onFormSubmitNotification(e) {
var userValues = e.values;
var name = userValues[1];
var message = "收到新表單!填寫人是:" + name;
MailApp.sendEmail("你的信箱@gmail.com", "表單提交通知", message);
}
設定表單提交觸發器
同樣進入左邊的觸發條件頁面。點選建立觸發條件。函式選擇 onFormSubmitNotification。事件來源選取來自試算表。最重要的步驟是把選取事件類型改成提交表單時。
實際測試
儲存設定後。去填寫一次你的 Google 表單並按下送出。幾秒鐘內。你的 Gmail 就會收到一封通知信。告訴你是誰填了表單。
流程總結
到這裡你已經掌握了 GAS 的核心:讀寫格子、條件判斷、按鈕執行、定時任務,以及連動其他 Google 服務。這些技巧可以組合出成千上萬種自動化工具。
了解 e 的含義
在剛才的程式碼中。e 代表 event。也就是事件物件。當有人按下表單提交。Google 會把所有填寫的內容。打包成這個 e 送給程式。
抓取表單欄位內容
e.values 是一個清單。裡面照順序存著表單的回答。通常索引 0 是填寫時間。索引 1 開始才是你的問題答案。
function onFormSubmitNotification(e) {
var timestamp = e.values[0];
var name = e.values[1];
var feedback = e.values[2];
var message = "時間:" + timestamp + "\n姓名:" + name + "\n內容:" + feedback;
MailApp.sendEmail("你的信箱@gmail.com", "新回覆通知", message);
}
除錯的小撇步
如果你發現收到的內容不對。可以在程式裡加入 console.log(e.values)。這樣在執行紀錄裡就能看到抓到的資料長什麼樣子。這對調整程式非常有幫助。
延伸應用場景
除了寄信給自己。你也可以修改程式碼。把這封信寄給填寫表單的人。當作自動回覆的感謝函。這在辦活動或是收報名表時非常好用。
你的下一步
你已經從零開始學會了 GAS 最強大的幾種用法。這就像是拿到了開啟自動化大門的鑰匙。你可以開始嘗試把日常重複的瑣事交給程式處理。