【前情提要】
上次我們分出客群進行投遞,那在此之上客製化的信件更能讓客戶感到自己的特殊,尤其針對折扣的推銷。或者依據其他的屬性,客製化更多的分支服務。
那我們這次,則會利用用戶名稱簡單的呈現修改信件內容的方法。
【預計內容】
- 新增表單問題
- 修改信件內容
- 測試信件投遞
【主要內容】
1. 新增表單問題
那在題目這邊,我新增一個區域讓用戶輸入名稱。
我這邊也順便先填寫完表單
2. 修改信件內容
接著,我們回到 Linked Sheet 中修改 Apps Script,我們先在信件內容加入 placeholder。而 {USERNAME} 就是之後要填寫用戶名稱的部分。
HTML
<h1>Hello {USERNAME}!</h1><p>This is a test email with HTML content.</p>
那接著,我們就修改其他部分,新增 replace 方法取代剛所設定的 placeholder。
JavaScript
// Send email to all responsers
function sendEmails() {
// Name of linked sheet
var sheetName = 'Form Responses 1';
// Name for column that store the e-mail
var columnEmail = 'Email Address';
// Name for column of question of subscription
var columnSubscribe = '是否訂閱信件';
// Username
var columnUsername = '姓名';
// e-Mail Content
var emailContent = '<h1>Hello {USERNAME}!</h1><p>This is a test email with HTML content.</p>';
// Get the active spreadsheet and sheet
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName(sheetName);
// Get the data range
var dataRange = sheet.getDataRange();
var data = dataRange.getValues();
// Find the column index of the 'Email Address' column
var headers = data[0];
var emailColumnIndex = headers.indexOf(columnEmail);
var subscribeColumnIndex = headers.indexOf(columnSubscribe);
var usernameColumnIndex = headers.indexOf(columnUsername);
// If the 'Email Address' column is found
if (emailColumnIndex !== -1) {
// Start from row 2 to skip headers
for (var i = 1; i < data.length; i++) {
var row = data[i];
// If the 'Subscription' column is found
if (subscribeColumnIndex !== 1) {
if (row[subscribeColumnIndex] === '是') {
var recipient = row[emailColumnIndex];
var recipientName = row[usernameColumnIndex];
// Modify e-mail content
emailContent = emailContent.replace('{USERNAME}', recipientName);
try {
// Send the email
GmailApp.sendEmail(recipient, 'Hello from BaBaoChou', emailContent, { 'htmlBody': emailContent });
console.log('Successfully sent email to: ' + recipient);
} catch (error) { console.error('Failed to send email to: ' + recipient); }
}
}
}
}
}
3. 測試信件投遞
那接著讓我們手動執行,一樣只會打印一個回應。
那到信箱可以發現信內有自己的名稱,我們成功的修改信件內容。而依照迴圈,後續會填入其他的姓名。
這樣我們就完成最基礎的客製化啦 ~~
【後話】
目前這些範例當然只有基礎與示範用途,若想要建立適合的系統