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

使用Apps Script调用Gmail HTML签名发邮件时显示原始代码如何解决

Gmail获取HTML签名后发信显示源码问题解决方案

出现该问题的核心原因是调用Gmail发信接口时,HTML格式的签名内容被传入了纯文本内容字段,没有指定专用的HTML内容参数。

正确实现步骤

  • 第一步:正常获取默认账号的HTML签名,你当前使用的代码无需调整:
var signature = Gmail.Users.Settings.SendAs.list("me").sendAs.filter(function(account){if(account.isDefault){return true}})[0].signature;
  • 第二步:构造邮件的HTML内容,发信时传入专属的HTML内容参数
    如果使用GmailApp.sendEmail接口发信,很多人只会填写前三个必填参数(收件人、主题、纯文本正文),此时所有内容都会被当成纯文本渲染,你需要额外传入htmlBody参数承载HTML格式的正文和签名,示例代码如下:
// 基础发信参数
const receiveAddr = "收件人邮箱地址";
const mailSubject = "测试邮件主题";
// plainTextBody是给不支持HTML的邮件客户端兜底的纯文本内容
const plainTextBody = "您好,这是本次邮件的正文内容";
// 构造完整HTML内容:正文可以用基础HTML标签包裹,末尾直接拼接获取到的签名HTML即可
const fullHtmlContent = `<p>${plainTextBody}</p>${signature}`;

// 调用发信接口,必须传入第四个参数指定htmlBody
GmailApp.sendEmail(
  receiveAddr,
  mailSubject,
  plainTextBody,
  {
    htmlBody: fullHtmlContent
  }
);

注意事项

  • 不要对获取到的signature变量做额外HTML转义处理,比如不要调用转义方法把<>转换成<``>`,原生返回的内容就是可直接使用的HTML字符串
  • 如果使用原生Gmail API发信,只需要在构造邮件payload时,把mimeType设置为text/html,再把拼接好的完整HTML内容传入即可。

内容的提问来源于stack exchange,提问作者LUCA DELLA GHEZZA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:12:01