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

能否通过Google App Script将Google表单上传的多个附件自动随邮件发送?

Google Form多附件自动附带发送邮件实现方案

需求完全可实现,具体实现步骤和代码修改如下:

  • 解析Google Sheet存储的文件链接提取文件ID
    Google Form的文件上传题提交后,结果会以逗号分隔的云端硬盘链接格式存储在绑定表格的对应列中,链接默认格式为https://drive.google.com/open?id=文件ID,拆分链接提取id参数值即可获得对应文件的唯一标识。
  • 批量生成符合发信要求的附件数组
    遍历所有提取到的文件ID,调用DriveApp.getFileById()获取文件实例后调用.getBlob()方法,转为邮件支持的附件格式,统一存入数组即可实现多附件支持。
  • 修改现有发信代码添加附件配置
    将生成的附件数组传入GmailApp.sendEmail方法的Options参数的attachments字段即可。

完整参考代码

// 此处替换为你从表格对应行读取到的文件上传列原始内容,FILE_UPLOAD_COLUMN_INDEX为文件上传列在表格中的索引值
const fileLinksStr = e.values[FILE_UPLOAD_COLUMN_INDEX]; 
const fileLinks = fileLinksStr.split(', ').filter(link => link.trim());
const attachments = [];

fileLinks.forEach(link => {
  const fileId = link.split('id=')[1];
  try {
    const file = DriveApp.getFileById(fileId);
    attachments.push(file.getBlob());
  } catch(err) {
    console.error(`文件ID ${fileId} 读取失败:${err.message}`);
  }
});

// 修改后的发信调用
GmailApp.sendEmail(Recipient, subject, '', {
  htmlBody: htmlText,
  attachments: attachments
});

注意事项

  • 首次运行代码需要为脚本授予Google Drive读取权限,否则会触发权限报错
  • 脚本执行身份需为表单所有者,默认情况下表单所有者拥有所有受访者上传文件的访问权限
  • 单个邮件总附件大小不可超过Gmail发送限制(当前为25MB),超出会导致发信失败

内容的提问来源于stack exchange,提问作者Jeff Abrahams

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 14:24:04