程式碼程度:初學者
時間長度:10 分鐘
專案類型:使用自訂選單進行自動化
偏好看影片學習嗎?
Google Workspace 開發人員頻道提供有關提示、訣竅和最新功能的影片。
|
目標
- 瞭解解決方案的功能。
- 瞭解解決方案中的 Apps Script 服務功能。
- 設定指令碼。
- 執行指令碼。
認識這項解決方案
自動將 Google 試算表的資料填入電子郵件範本。電子郵件會從您的 Gmail 帳戶寄出,方便您後續回覆收件人的回應。
重要事項:這個郵件合併範例受限於「Google 服務配額」一文所述的電子郵件限制。
運作方式
您會建立含有預留位置的 Gmail 草稿範本,這些預留位置對應至 Google 試算表中的資料。試算表中的每個欄標頭都代表預留位置代碼。這項指令碼會將試算表中每個預留位置的資訊,傳送至電子郵件草稿中對應預留位置代碼的位置。
Apps Script 服務
這項解決方案會使用下列服務:
- Gmail 服務:取得、讀取及傳送要傳送給收件者的電子郵件草稿。
- 如果電子郵件包含表情符號等 Unicode 字元,請改用 Mail 服務。瞭解如何更新程式碼,在電子郵件中加入萬國碼字元。
- 試算表服務:在電子郵件預留位置中填入每位收件者的個人化資訊。
必要條件
如要使用這個範例,您必須符合下列先決條件:
- Google 帳戶 (Google Workspace 帳戶可能需要管理員核准)。
- 可連上網際網路的網路瀏覽器。
設定指令碼
建立 Apps Script 專案
- 按一下下列按鈕,複製 Gmail/試算表合併列印範例試算表。這項解決方案的 Apps Script 專案已附加至試算表。
建立副本 - 在複製的試算表中,使用要在郵件合併中使用的電子郵件地址,更新「收件者」欄。
- (選用) 新增、編輯或移除資料欄,自訂要在電子郵件範本中加入的資料。
如果變更「收件者」或「已傳送的電子郵件」欄的名稱,請務必更新 Apps Script 專案中的對應程式碼。如要從試算表開啟 Apps Script 專案,請依序點選「擴充功能」>「Apps Script」。
建立電子郵件範本
- 在 Gmail 帳戶中建立電子郵件草稿。如要在電子郵件中加入試算表資料,請使用與欄名對應的預留位置,並以大括號括住,例如
{{First name}}
。- 如果格式化電子郵件中的文字,也必須格式化預留位置的方括號。
- 預留位置區分大小寫,且必須與欄標題完全相符。
- 複製電子郵件草稿的主旨。
執行指令碼
- 在試算表中,依序點選「合併列印」>「傳送電子郵件」。你可能需要重新整理頁面,才能看到這個自訂選單。
出現提示訊息時,請授權執行指令碼。如果 OAuth 同意畫面顯示「這個應用程式未經驗證」警告,請依序選取「進階」>「前往『{專案名稱}』(不安全)」,繼續操作。
依序按一下「郵件合併」>「傳送電子郵件」。
貼上電子郵件範本主旨行,然後按一下「確定」。
如果您為試算表套用了篩選器,指令碼仍會傳送電子郵件給篩選後的參與者,但不會新增時間戳記。
檢查程式碼
如要查看這項解決方案的 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)
在上述範例中,noReply
參數仍會註解,因為已設定 replyTo
參數。
在電子郵件中加入萬國碼字元
如要在電子郵件中加入 Unicode 字元 (例如表情符號),您必須更新程式碼,改用 Mail 服務而非 Gmail 服務。
在範例程式碼中,更新下列程式碼行:
GmailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, {
將該行內容替換成以下的程式碼:
MailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, {
貢獻者
這個範例是由愛丁堡未來研究所的學習設計與技術主管、部落客兼 Google 開發人員專家 Martin Hawksey 製作。
- 在 Twitter 上追蹤 Martin:@mhawksey。
- 閱讀 Martin 撰寫的 Google Apps Script 相關網誌文章。
- 觀看 Martin 的 YouTube 節目「Totally Unscripted」。
這個範例由 Google 維護,並由 Google 開發人員專家協助。