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

求助:Google Apps Script邮件自动化脚本报错及功能实现问题

问题与解决方案

错误原因分析

你代码第13行报错,是因为folderId填的是文件夹名称「TestFolder」,但DriveApp.getFolderById()需要的是Google Drive文件夹的唯一ID,不是名称。文件夹ID是Drive地址栏里folders/后面的一串字符,比如https://drive.google.com/drive/folders/123abcXYZ...中的123abcXYZ...。

匹配需求的修正代码

以下代码完全实现你要的自动化功能:Drive上传符合格式的文件时自动触发,匹配文件名前8位与Sheet「代码」列,发送带附件的邮件。

// 触发函数:当监控文件夹有文件新增时自动运行
function onFileUpload(e) {
  // 配置参数:替换成你的实际信息
  const CONFIG = {
    folderId: "替换成你的监控文件夹ID", // 必须填文件夹唯一ID,不是名称
    sheetName: "RecipientList", // 你的收件人列表Sheet名称
    emailSubject: "新文件已上传",
    emailMessage: "对应你的文件已上传,附件为该文件。"
  };

  // 仅处理新增文件
  const file = e;
  if (!file || file.changeType !== "add") return;
  const fileName = file.name;

  // 提取文件名前8位代码,检查格式是否符合要求
  const fileCode = fileName.substring(0, 8);
  if (!/^[A-Za-z0-9]{8}_/.test(fileName)) return;

  // 读取Sheet数据,构建「代码→邮箱」的映射表
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(CONFIG.sheetName);
  const data = sheet.getDataRange().getValues();
  const codeToEmail = {};
  
  // 假设Sheet第1列是「代码」,第2列是「邮箱地址」;若列位置不同,修改索引(0对应第1列,1对应第2列)
  for (let i = 1; i < data.length; i++) { // 跳过表头行
    const code = data[i][0].toString().trim();
    const email = data[i][1].toString().trim();
    if (code && email) codeToEmail[code] = email;
  }

  // 匹配代码并发送带附件的邮件
  if (codeToEmail[fileCode]) {
    const targetEmail = codeToEmail[fileCode];
    const driveFile = DriveApp.getFileById(file.id);
    GmailApp.sendEmail(
      targetEmail,
      CONFIG.emailSubject,
      CONFIG.emailMessage,
      { attachments: [driveFile] }
    );
  }
}

使用步骤

  1. 获取文件夹ID:打开要监控的Drive文件夹,复制地址栏中folders/后面的字符,替换代码里的folderId值。
  2. 适配Sheet列:确保Sheet第1列是「代码」(8位字符),第2列是「邮箱地址」;如果列位置不同,修改代码中data[i][0]和data[i][1]的索引。
  3. 设置自动触发器:
    • 打开脚本编辑器,点击左侧「触发器」图标
    • 点击「添加触发器」,配置如下:
      • 选择函数:onFileUpload
      • 选择事件源:「从Drive」
      • 选择事件类型:「文件创建」
      • 保存并完成权限授权

额外说明

  • 脚本只会处理文件名以「8位字母数字+下划线」开头的文件(如ABC12345_RestoftheFilename.pdf),不符合格式的文件会自动跳过。
  • 首次运行需要授权Google Workspace相关权限,按页面提示操作即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:52:50