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

Google Forms自动邮件脚本:多文件附件功能修复需求

批量附加Google Forms上传的所有文件到邮件

问题根源

你当前代码里只取了上传文件数组的第一个元素([0]),所以不管传几个文件,只会把第一个加到邮件里。要支持1-5个文件,得把所有上传的文件ID都转成附件。

修改后的可运行代码

// 获取表单返回的所有上传文件ID数组
var fileIds = answers["XXXXX"];
// 用来存所有附件的数组
var attachments = [];

// 逐个处理每个文件ID,转成邮件能识别的格式
fileIds.forEach(function(fileId) {
  var targetFile = DriveApp.getFileById(fileId);
  attachments.push(targetFile.getBlob());
});

MailApp.sendEmail({
  name: "Mailing",
  to: "你的目标收件邮箱",
  cc: "抄送邮箱",
  subject: "邮件主题",
  htmlBody: "<p>你的邮件内容</p>",
  noReply: true,
  attachments: attachments // 把所有附件传进去
});

关键说明

  • answers["XXXXX"] 本身就是个数组,上传1个文件时长度是1,传5个就是5,不用单独写变量对应每个文件。
  • 用forEach遍历数组,把每个ID对应的文件转成Blob格式(邮件附件要求的格式),塞进attachments数组里。
  • 最后把整个数组传给sendEmail的attachments参数,就能一次性附加所有上传的文件。

小提醒

  • 原代码里htmlBody末尾多了个+号,记得删掉,不然会报错。
  • 可以去Google Forms的文件上传字段设置里,确认允许上传的文件数量上限(默认最多10个,改成5个就行)。

内容的提问来源于stack exchange,提问作者Xavier Navarro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:47:19