程式設計程度:初學者
時間長度:10 分鐘
專案類型:使用自訂選單的自動化動作
偏好透過影片學習嗎?
Google Workspace Developers 頻道提供提示、秘訣和最新功能的影片。
|
目標
- 瞭解解決方案的功能。
- 瞭解 Apps Script 服務在解決方案中的作用。
- 設定指令碼。
- 執行指令碼。
認識這項解決方案
自動使用 Google 試算表中的資料填入電子郵件範本。電子郵件會從您的 Gmail 帳戶傳送,方便您回覆收件者的回覆。
重要事項:這個合併列印郵件範例會受到「Google 服務配額」中所述的電子郵件限制。
運作方式
您可以建立 Gmail 草稿範本,其中包含與 Google 試算表工作表資料相對應的預留位置。工作表中的每個欄標頭都代表一個預留位置代碼。這個指令碼會將試算表中每個預留位置的資訊,傳送至電子郵件草稿中對應的預留位置標記位置。
Apps Script 服務
本解決方案會使用下列服務:
- Gmail 服務:取得、讀取及傳送您要傳送給收件者的草稿電子郵件。
- 如果電子郵件含有表情符號等萬國碼字元,請改用電子郵件服務。瞭解如何更新程式碼,在電子郵件中加入萬國碼字元。
- 試算表服務:填入電子郵件預留位置,並為每位收件者提供個人化資訊。
必要條件
如要使用這個範例,您必須具備下列先決條件:
- Google 帳戶 (Google Workspace 帳戶可能需要管理員核准)。
- 可連上網際網路的網路瀏覽器。
設定指令碼
建立 Apps Script 專案
- 按一下下方按鈕,複製 Gmail/Sheets 郵件合併 範例試算表。這個解決方案的 Apps Script 專案已附加到試算表中。
「建立副本」 - 在複製的試算表中,將「收件者」欄更新為要用於合併列印的電子郵件地址。
- (選用) 新增、編輯或移除資料欄,自訂要納入電子郵件範本的資料。
如果變更「收件者」或「已傳送電子郵件」欄的名稱,請務必更新 Apps Script 專案中的對應程式碼。你可以按一下「擴充功能」>「Apps Script」,在試算表中開啟 Apps Script 專案。
建立電子郵件範本
- 在 Gmail 帳戶中建立電子郵件草稿。如要在電子郵件中加入試算表的資料,請使用與欄名稱相對應的預留位置,並以大括號括住,例如
{{First name}}
。- 如果您在電子郵件中設定文字格式,也必須設定預留位置方塊。
- 預留位置區分大小寫,且必須與欄標題完全相符。
- 複製電子郵件草稿的主旨。
執行指令碼
- 在試算表中,依序按一下「郵件合併」>「傳送電子郵件」。您可能需要重新整理頁面,才能顯示這個自訂選單。
出現提示時,請授權執行指令碼。如果 OAuth 同意畫面顯示「This app isn't verified」警告,請依序選取「Advanced」「Go to {Project Name} (unsafe)」(前往「{Project Name}」(不安全))。
再次按一下「郵件合併」「傳送電子郵件」。
貼上電子郵件範本的標題,然後按一下「確定」。
如果您為工作表套用篩選器,指令碼仍會傳送電子郵件給篩選出的參與者,但不會加入時間戳記。
查看程式碼
如要查看這個解決方案的 Apps Script 程式碼,請按一下下方的「查看原始碼」:
查看原始碼
Code.gs
修正規則
你可以視需求編輯郵件合併自動化動作。以下是您可以對原始碼進行的幾項選用變更。
新增密件副本、副本、回覆或寄件者電子郵件參數
範例程式碼包含多個額外參數 (目前已註解掉),可讓您控制電子郵件傳送者的帳戶名稱、回覆電子郵件地址,以及密件副本和副本電子郵件地址。
移除每個參數前面的反斜線 //
,即可啟用要新增的參數。
以下範例顯示 sendEmails
函式中的摘錄,該函式會啟用大部分的電子郵件參數:
GmailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, { htmlBody: msgObj.html, bcc: 'bcc@example.com', cc: 'cc@example.com', from: 'from.alias@example.com', name: 'name of the sender', replyTo: 'reply@example.com', // noReply: true, // if the email should be sent from a generic no-reply email address (not available to gmail.com users)
在上述範例中,由於已設定 replyTo
參數,noReply
參數仍會註解掉。
在電子郵件中加入萬國碼字元
如果您想在電子郵件中加入表情符號等萬國碼字元,必須更新程式碼,改用 Mail 服務而非 Gmail 服務。
在程式碼範例中,更新下列程式碼行:
GmailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, {
將該行替換為以下程式碼:
MailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, {
貢獻者
本範例由 Martin Hawksey 製作,他是 Edinburgh Futures Institute 的學習設計和技術主管、部落客和 Google 開發專家。
- 歡迎在 Twitter 上追蹤 Martin (@mhawksey)。
- 閱讀 Martin 撰寫的 Google Apps Script 相關網誌文章。
- 觀看 Martin 的 YouTube 節目「Totally Unscripted」。
這個範例是由 Google 維護,並由 Google 開發人員專家提供協助。