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

Google表单提交自动发HTML邮件:内容显示[object Object]求排查

问题原因及修复方案

你遇到的[object Object]问题,根源是**GmailApp.sendEmail的参数传错了**。

错误点解析

GmailApp.sendEmail的正确参数顺序是:
GmailApp.sendEmail(收件人邮箱, 邮件主题, 纯文本内容, 配置选项)

你现在把包含htmlBody的options对象直接传到了第三个参数的位置,而这个位置原本应该放纯文本格式的邮件内容,系统把对象转换成字符串后就变成了[object Object]。

修复后的代码

1. Google Apps Script 部分

function sendBookingConfirmationEmail(e) {
  var html = HtmlService.createTemplateFromFile("confirmationEmail.html");
  var emailTo = e.response.getRespondentEmail();
  var bookingParameters = e.response.getItemResponses();

  var bookingName = bookingParameters[0].getResponse();
  var numberOfTele = bookingParameters[1].getResponse();
  var numberOfKids = bookingParameters[2].getResponse();
  var numberOfAdults = bookingParameters[3].getResponse();
  var scheduledSlot = bookingParameters[4].getResponse();

  html.numberOfKids = numberOfKids;
  html.numberOfAdults = numberOfAdults;
  html.numberOfTele = numberOfTele;
  html.scheduledSlot = scheduledSlot;
  html.bookingName = bookingName; // 把预订人名字传入模板,邮件更友好

  var htmlText = html.evaluate().getContent();

  var emailSubject = "BOOKING CONFIRMATION";
  // 生成纯文本版内容,兼容不支持HTML的邮件客户端
  var plainText = `您好${bookingName},您的预订已确认:
儿童人数:${numberOfKids}
成人人数:${numberOfAdults}
电话设备数:${numberOfTele}
预订时段:${scheduledSlot}

此致
团队`;
  var options = { htmlBody: htmlText };

  if (emailTo !== undefined) {
    // 修正参数顺序:纯文本内容作为第三个参数,options作为第四个
    GmailApp.sendEmail(emailTo, emailSubject, plainText, options);
  }
}

2. HTML模板部分(优化后更友好)

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <style>
      body { font-family: Arial, sans-serif; line-height: 1.6; }
      .booking-details { background: #f5f5f5; padding: 15px; border-radius: 5px; margin: 15px 0; }
    </style>
  </head>
  <body>
    <p>您好 <?= bookingName ?>,</p>
    <p>您的预订已成功确认,详情如下:</p>
    <div class="booking-details">
      <p>儿童人数:<?= numberOfKids ?></p>
      <p>成人人数:<?= numberOfAdults ?></p>
      <p>电话设备数:<?= numberOfTele ?></p>
      <p>预订时段:<?= scheduledSlot ?></p>
    </div>
    <p>如有疑问请随时联系我们。</p>
    <p>此致敬礼<br>
    团队</p>
  </body>
</html>

额外提示

  • 建议给每个变量加上分号,避免潜在语法问题
  • 增加纯文本内容是为了兼容所有邮件客户端,部分客户端默认不显示HTML邮件
  • 加入预订人名字能提升用户体验,让邮件更个性化

内容的提问来源于stack exchange,提问作者Gaspar Lam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:05:28