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

基于Google Sheets单元格数据自动发送邮件的Apps Script实现求助

解决Google Sheet编辑特定单元格触发邮件发送问题

以下是适配你的需求的Apps Script代码,包含关键注释和必要的设置说明,解决新数据表中功能失效的常见问题:

function sendEmailOnEdit(e) {
  // 获取编辑事件的核心信息
  const editRange = e.range;
  const activeSheet = editRange.getSheet();

  // 1. 限定仅在目标工作表触发(替换为你的表单响应表名称,比如"表单响应1")
  const targetSheet = "表单响应1";
  if (activeSheet.getName() !== targetSheet) return;

  // 2. 限定仅编辑指定列时触发(替换为触发列的列号,比如第5列对应E列)
  const triggerColumn = 5;
  if (editRange.getColumn() !== triggerColumn) return;

  // 3. 限定仅单元格值符合特定条件时触发(比如编辑为"发送"时执行)
  const triggerText = "发送";
  if (editRange.getValue() !== triggerText) return;

  // 4. 读取当前行的收件人邮箱和消息内容(替换为你的列号)
  const emailColumn = 2; // 收件人邮箱所在列(B列)
  const messageColumn = 3; // 消息内容所在列(C列)
  const rowNum = editRange.getRow();

  const recipient = activeSheet.getRange(rowNum, emailColumn).getValue();
  const emailContent = activeSheet.getRange(rowNum, messageColumn).getValue();

  // 5. 发送邮件
  MailApp.sendEmail(
    recipient,
    "来自Google Sheet的通知", // 自定义邮件主题
    emailContent
  );

  // 可选:标记已发送,避免重复触发
  editRange.setValue("已发送");
}

关键配置(新表失效的常见原因)

  • 替换表格和列信息:务必将代码中的targetSheet、triggerColumn、emailColumn、messageColumn改成你新数据表的对应值(列号从A=1开始计数)。
  • 创建可安装触发器:简单onEdit触发器无邮件发送权限,需手动配置:
    1. 打开脚本编辑器,点击左侧「触发器」图标。
    2. 点击「添加触发器」,设置:
      • 运行函数:sendEmailOnEdit
      • 部署类型:从电子表格
      • 事件源:编辑时
    3. 按提示完成授权(需允许脚本访问你的邮箱和表格)。
  • 验证数据格式:确保收件人单元格是有效邮箱格式,消息内容单元格不为空。

排查故障步骤

若仍无法运行:

  1. 查看脚本编辑器「执行记录」,定位具体错误(比如列号错误、权限不足、邮箱格式无效)。
  2. 手动测试函数:临时修改代码,固定rowNum为某一有效行号,运行函数验证邮件发送逻辑是否正常。
  3. 核对表结构:新表的列顺序可能与旧表不同,需确认收件人、消息、触发列的位置是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 20:12:40