Google Apps Script使用MailApp发送同结构HTML邮件渲染不一致问题
解决方法
- 第一步先导出异常流程生成的原始HTML:在
MailApp.sendEmail执行前增加console.log(msg),运行脚本后从控制台复制完整的HTML内容,和正常流程生成的HTML做对比,可快速定位问题:- 检查是否存在未闭合的HTML标签,邮件客户端对语法错误的容错率极低,任何没闭合的标签都会破坏整体布局
- 检查动态输出的内容是否包含未转义的
<、>、&等特殊字符,这类字符会被客户端识别为HTML代码,导致渲染错乱
- 针对转义问题的修复方案:
- 如果需要保留输出内容里的HTML格式,把模板里的输出标签从
<?= ?>改为<?!= ?>(非转义输出) - 如果不需要保留内容里的HTML格式,手动给输出内容加转义:
<?= HtmlService.htmlEscape(dataArray[mailObj[output]]) ?>
- 如果需要保留输出内容里的HTML格式,把模板里的输出标签从
- 检查
submissionMail模板的完整结构:你现在只提供了列表部分的代码,要确认整个模板的HTML结构完整,所有外部标签都正确闭合,也可以直接把正常的creationMail模板全量复制过来,只替换动态渲染的变量部分,排除模板本身的结构问题 - 清除模板隐形字符:把
submissionMail的全部内容复制到系统自带的纯文本记事本,再重新粘贴回GAS模板编辑器,避免BOM头、异常不可见字符导致的渲染问题 - 本地验证:把控制台导出的异常HTML保存为本地.html文件用浏览器打开,能直接看到是哪段代码导致的渲染异常,调试效率更高
内容的提问来源于stack exchange,提问作者Bassem Mustafa
相关产品推荐
相关产品推荐

