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

求助:Google Sheets新增行时脚本无法给最后一行发送邮件

排查Google Sheets新增行邮件发送失败的方案

1. 确认数据读取逻辑是否正确

  • 优先通过表单提交事件对象获取新增行,避免手动查找最后一行时出错(比如表格存在空白行的情况),示例代码:
    function onNewRowAdded(e) {
      var targetRow = e.range.getRow();
      var activeSheet = e.source.getActiveSheet();
      // 读取第3列邮箱、第6列姓名
      var recipientEmail = activeSheet.getRange(targetRow, 3).getValue().trim();
      var userName = activeSheet.getRange(targetRow, 6).getValue().trim();
    }
    
  • 加日志验证数据:在代码中插入Logger.log("邮箱:%s,姓名:%s", recipientEmail, userName),执行后通过「视图>日志」确认是否读取到有效内容。

2. 检查邮件发送函数参数

  • 确保MailApp.sendEmail()参数格式合法,收件人邮箱不能为空且格式正确:
    MailApp.sendEmail({
      to: recipientEmail,
      subject: "新增行通知",
      body: `您好${userName},您的信息已成功添加到表格中`
    });
    
  • 如果邮箱是从单元格读取的带格式内容(如空格、换行),必须用trim()清理。

3. 验证触发器配置

  • 必须使用「表单提交」触发器:手动触发或时间驱动触发会导致事件对象e为空,无法获取新增行数据。
  • 重新创建触发器:删除旧触发器,进入「扩展>Apps脚本>编辑>触发器>添加触发器」,选择对应的函数,事件类型设为「表单提交」,完成授权流程。

4. 排查邮箱权限与限额

  • 手动运行一次测试函数,确认脚本已获取发送邮件的权限:
    function testEmailSend() {
      MailApp.sendEmail("你的测试邮箱地址", "测试邮件", "测试内容");
    }
    
  • 检查账号发送限额:免费版Google账号每日邮件发送上限为100封,超出会被限制。

5. 排除单元格数据异常

  • 确认第3列的邮箱没有隐藏字符、格式错误(比如缺少@符号),可以手动复制邮箱到邮件客户端测试是否能正常接收。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:52:03