Google表单提交后HTML邮件内容未解析问题求助
解决Google表单脚本HTML邮件不解析的问题
老哥,我懂你现在的困扰——明明在脚本里定义了htmlBody变量,但发送的确认邮件里HTML标签完全没被解析,还是显示成一堆带<br>的纯文本对吧?这问题其实出在你调用MailApp.sendEmail()的方式上,没把HTML内容作为专门的参数传入。
问题根源
如果你的原脚本是直接把htmlBody作为第三个参数传给sendEmail(比如MailApp.sendEmail(email, subject, htmlBody)),那这个参数会被当作纯文本正文来处理,HTML标签自然不会被解析。要让邮件识别HTML格式,必须用选项对象的形式传入htmlBody参数。
修改后的完整脚本示例
我把你的代码补全并修正了关键部分,保留了你原来的附件逻辑(假设你之前获取附件的代码是正常的):
function onFormSubmit(e) { var timestamp = e.values[0]; var email = e.values[2]; var subject = "Votre demande"; // 直接写原生HTML标签即可,不用转义<这类实体(除非你是在XML环境里) var htmlBody = `Madame, Monsieur,<br> Veuillez trouver ci-joint le(s) documents demandés. Nous sommes à votre entière disposition pour toute question.<br><br> Cordialement,<br> Votre équipe`; // 这里替换成你原来获取附件的逻辑,比如从表单响应或Drive中获取文件 var attachments = [/* 示例:DriveApp.getFileById("你的文件ID") */]; // 核心:用选项对象的方式调用sendEmail,明确指定htmlBody和纯文本备用版本 MailApp.sendEmail({ to: email, subject: subject, // 纯文本版本:给不支持HTML邮件的收件人备用 plainTextBody: "Madame, Monsieur,\nVeuillez trouver ci-joint le(s) documents demandés. Nous sommes à votre entière disposition pour toute question.\n\nCordialement,\nVotre équipe", htmlBody: htmlBody, attachments: attachments }); }
几个关键注意点
- 用**模板字符串(反引号``)**包裹HTML内容,这样可以直接换行写HTML,不用拼接字符串,也避免引号转义的麻烦。
- 一定要传入
plainTextBody作为降级选项,确保所有收件人都能看到正常的邮件内容。 - 如果你的HTML里有更复杂的样式(比如字体、颜色),可以直接在
<style>标签里定义,或者用内联样式(因为多数邮件客户端不支持外部样式表)。
内容的提问来源于stack exchange,提问作者ludovic charles
相关产品推荐
相关产品推荐

