如何在Google Sheet的JS脚本中添加HTML邮件模板发送个性化邮件
把Google Sheets邮件脚本从纯文本改成HTML模板
嘿,恭喜你的纯文本邮件脚本已经正常跑起来啦!改成HTML格式其实超简单,Google Apps Script的MailApp.sendEmail方法本身就支持HTML邮件,我来给你把现有脚本改好,顺便讲清楚关键细节:
核心原理:用sendEmail的重载版本
你原来用的是三个参数的纯文本写法:MailApp.sendEmail(emailAddress, subject, message)。要发HTML邮件,我们只需要改用配置对象参数的版本,在对象里指定htmlBody字段就行——甚至还能同时保留纯文本备份,给那些不支持HTML的邮箱用。
修改后的完整脚本
下面是适配你需求的代码,我把HTML模板加了进去,还保留了个性化的名字替换:
function sendEmails() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow = 2; // 从第二行开始,第一行是表头 var numRows = 3; // 要处理的行数 // 获取A2:B4范围的数据,A列=邮箱,B列=名字 var dataRange = sheet.getRange(startRow, 1, numRows, 2); var data = dataRange.getValues(); for (var i in data) { var row = data[i]; var emailAddress = row[0]; var firstName = row[1]; // 这里是你的HTML邮件模板,用模板字符串直接插入变量 var htmlMessage = ` <div style="font-family: Arial, sans-serif; max-width: 600px; margin: 20px auto; padding: 20px; border: 1px solid #eee; border-radius: 8px;"> <h3 style="color: #2c3e50;">Hey ${firstName},</h3> <p style="font-size: 16px; line-height: 1.5;">希望你今天过得不错!😉</p> <p style="font-size: 16px; line-height: 1.5;">这是一封用Google Sheets脚本发送的HTML邮件,你可以随意修改模板里的内容、样式,甚至添加图片、按钮或者链接。</p> <p style="font-size: 16px; line-height: 1.5;">比如这里可以放你的业务信息、活动链接之类的~</p> <p style="margin-top: 20px; font-size: 16px;">祝好,<br>你的自动邮件助手</p> </div> `; var subject = "Sending personalized HTML emails from Google Sheets"; // 发送邮件:同时指定HTML正文和纯文本备份 MailApp.sendEmail({ to: emailAddress, subject: subject, // 纯文本版本(给不支持HTML的邮箱) body: `Hey ${firstName},\n希望你今天过得不错!\n这是纯文本版本的邮件内容。`, // HTML版本的正文 htmlBody: htmlMessage }); } }
几个实用小技巧
- 模板字符串:用反引号
`包裹HTML,能直接用${变量名}插入个性化内容,比字符串拼接清爽太多 - 样式支持:可以给HTML加内联样式(就像上面的
style属性),大部分邮箱都支持内联样式,避免用外部CSS - 复杂模板管理:如果你的HTML模板很长,建议把模板存在Google Sheet的某个单独单元格里(比如C1),然后用
sheet.getRange("C1").getValue()读取,这样修改模板不用改代码,更方便
测试的时候还是和之前一样,只要表格里A列是邮箱、B列是名字,就能直接运行啦!
内容的提问来源于stack exchange,提问作者Sellsfy
相关产品推荐
相关产品推荐

