Google Sheets表单提交后发送HTML模板邮件异常问题排查
问题解决:HTML邮件模板发送格式异常
- 核心问题:你直接把
HtmlService.createTemplateFromFile()返回的模板对象传给了GmailApp.sendEmail()的第三个参数,但这个参数仅接受纯文本字符串。要发送HTML格式邮件,需先将模板渲染为HTML字符串,再通过htmlBody配置项传入。 - 修正后的代码:
function sendEmail () { var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var lr = ss.getLastRow(); var email = ss.getRange(lr,3).getValue(); // 渲染HTML模板为可发送的字符串 var messageTemplate = HtmlService.createTemplateFromFile('email'); var htmlMessage = messageTemplate.evaluate().getContent(); var subject = "Test Subject"; // 配置HTML内容,同时保留纯文本备选方案 GmailApp.sendEmail( email, subject, "请使用支持HTML的邮件客户端查看此邮件", { htmlBody: htmlMessage } ); }
- 关键说明:
evaluate()会执行模板中的脚本逻辑,生成完整的HTML内容getContent()将渲染后的HTML对象转换为字符串格式GmailApp.sendEmail()的第四个参数是配置对象,htmlBody字段专门用于指定HTML邮件内容,第三个参数作为纯文本备选,兼容不支持HTML的邮件客户端
内容的提问来源于stack exchange,提问作者RamonT92
相关产品推荐
相关产品推荐

