You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Apps Script获取可嵌入邮件的Google表单纯HTML版本

实现方案

核心逻辑

Google表单的/emailform路径天生返回适配邮件客户端的纯静态HTML内容:无依赖JS、所有样式内联、提交接口直接对接原表单数据后台,完全可以直接拿来当邮件内嵌表单的HTML用,不需要从零手写表单结构。

具体操作步骤

1. 拉取邮件版表单HTML

通过Apps Script的UrlFetchApp能力请求对应表单的emailform地址,这里要注意请求头的UA设置,避免拿到带动态脚本的交互版页面:

function fetchFormEmailHtml() {
  const targetFormUrl = "https://docs.google.com/forms/u/0/d/1WdGrnquFdUoGF6Q5WoEZl_ys_hFr6WtWO1tZiROrp1Y/emailform";
  const res = UrlFetchApp.fetch(targetFormUrl, {
    // 模拟旧邮件客户端UA,触发Google返回纯静态邮件适配版内容
    headers: {
      "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"
    },
    muteHttpExceptions: true
  });
  return res.getContentText();
}
  • *UA参数必须和旧版邮件客户端匹配,否则会拉取到带动态JS脚本的交互版页面,这类内容无法在邮件客户端中正常运行,完全不适合嵌入邮件。
  • 这一步返回的HTML和Google原生发送的内嵌表单邮件内容完全一致,不需要额外做样式转码。

2. HTML内容适配

拉取到原生HTML后,只需要做两处简单调整就可以用于发送:

  • 把HTML内所有相对路径的表单提交地址,替换为带完整域名的绝对提交地址,避免邮件客户端解析路径错误导致提交失败。
  • 可按需删除HTML里多余的品牌跳转、外部导航元素,只保留表单输入、提交按钮的核心模块。

3. 发送内嵌表单邮件

处理完HTML后直接通过Apps Script的邮件能力发送即可:

function sendEmbeddedFormEmail(receivers) {
  const rawHtml = fetchFormEmailHtml();
  const finalHtml = adaptHtmlForEmail(rawHtml);
  MailApp.sendEmail({
    to: receivers.join(","),
    subject: "填写您的表单反馈",
    htmlBody: finalHtml
  });
}

常见踩坑提示

  • 不要尝试用FormApp原生API生成内嵌表单HTML,FormApp没有提供导出邮件适配版内容的接口,直接拉取/emailform路径是最低成本的实现方式。
  • 跑脚本的授权账号必须有对应Google表单的查看权限,否则拉取请求会返回账号登录提示页,拿不到有效表单内容。
  • 不需要额外给HTML加外链CSS、动态脚本,这类内容会被几乎所有邮件客户端拦截,原生拉取的emailform内容本身已经符合邮件安全规范。

内容的提问来源于stack exchange,提问作者Code Guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 23:54:03