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

Google Forms脚本报错:无法找到sendEmail方法求助

解决Google脚本中sendEmail方法找不到的问题

Hey Reagan, 很高兴能帮你搞定这个问题!你碰到的cannot find method sendEmail错误,大概率是因为调用这个方法的姿势不对——在Google Apps Script里,发送邮件必须通过MailApp或者GmailApp这两个官方服务来调用sendEmail,直接写sendEmail(...)肯定会找不到方法哒。

我给你写了一份适配需求的完整代码,专门用来把表单回复以纯文本形式发送到你的邮箱,完全没有冗余内容:

function onFormSubmit(e) {
  // 提取表单提交的所有问题和回复
  const formResponses = e.response.getItemResponses();
  let plainTextContent = "";

  // 把每个问题和对应的答案整理成纯文本格式
  formResponses.forEach(response => {
    const questionTitle = response.getItem().getTitle();
    const userAnswer = response.getResponse();
    plainTextContent += `${questionTitle}: ${userAnswer}\n\n`;
  });

  // 发送纯文本邮件,这里用MailApp(GmailApp也能实现,功能更丰富)
  MailApp.sendEmail({
    to: "your-email@example.com", // 替换成你要接收邮件的地址
    subject: "", // 留空就不会有主题,完全符合你的需求
    body: plainTextContent
  });
}

关键要点说明:

  • 这个onFormSubmit函数是专门对应表单提交事件的,不能手动运行,必须设置「安装型触发器」才能触发(后面我会说怎么设置)
  • e.response是表单提交时自动传入的参数,里面包含了所有用户提交的回复数据,我们通过getItemResponses()逐个提取问题和答案
  • 用forEach循环把内容整理成清晰的纯文本格式,每个问题和答案之间换行分隔,阅读起来很舒服
  • 发送邮件时用MailApp.sendEmail(),如果需要抄送、密送这类额外功能,可以换成GmailApp.sendEmail(),两者都支持纯文本的body参数

怎么设置触发器让脚本生效:

  1. 打开你的Google表单,点击右上角的「扩展程序」→「Apps脚本」
  2. 把上面的代码粘贴进去,替换掉your-email@example.com为你的实际邮箱
  3. 点击左侧菜单栏的时钟图标(「触发器」选项)
  4. 点击「添加触发器」,按照下面的设置配置:
    • 选择要运行的函数:onFormSubmit
    • 选择事件源:「表单」
    • 选择事件类型:「当表单提交时」
  5. 保存后会弹出权限授权提示,按照步骤允许脚本访问你的邮箱和表单数据就可以了

额外注意事项:

  • 一定要注意拼写和大小写,比如MailApp不能写成mailapp,sendEmail的拼写也不能错
  • 如果还是报错,检查一下是不是没有给脚本授予邮件发送的权限,第一次触发时必须完成授权
  • 如果你完全不需要邮件主题,把subject设为空字符串就好,邮件会以无主题的形式发送

内容的提问来源于stack exchange,提问作者Reagan Lyle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:30:46