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

如何仅向Google Form最新提交条目的联系人发送邮件回执?

问题根因

现有代码会遍历表格中所有历史提交行批量发送邮件,每次新提交触发时都会重复给所有历史采购学生发回执,不符合需求。

方案1:仅发送最新提交记录(极简适配)

你需要先把脚本的触发器调整为表单提交触发(代替原来的定时触发/其他触发方式),直接读取最后一行提交记录发送即可,修改后代码如下:

function sendAutomatedEmails() {
  var spreadSheet = SpreadsheetApp.getActiveSheet();
  var dataRange = spreadSheet.getDataRange();
  var data = dataRange.getValues();
  // 直接取最后一行的最新提交数据,跳过表头
  var latestRow = data[data.length - 1];
  var emailAddress = latestRow[3];
  var message = 'At '+ latestRow[0] + 'You purchased the following:' + '\n\n' + latestRow[4] + '\n' + latestRow[5] + '\n' + latestRow[6] + '\n' + latestRow[7] + '\n' + latestRow[8] + '\n' + latestRow[9] + '\n' + 'Your total cost is $' + latestRow[10];
  var subject = 'Personal Purchase Reciept';
  MailApp.sendEmail(emailAddress, subject, message);
}

注意事项

  • 该方案适合提交频率低、不会出现短时间内多人同时提交的场景
  • 如果存在1分钟内多笔提交的情况,可能会出现漏发

方案2:带发送标记的稳妥方案(推荐)

不会漏发也不会重复发,还方便对账岗位核对:

  1. 在你的表格最后新增一列(比如第12列,对应数组索引为11),列名设为「邮件发送状态」
  2. 替换为以下代码,逻辑为每次触发时只发送状态为空的记录,发送成功后自动标记为「已发送」:
function sendAutomatedEmails() {
  var spreadSheet = SpreadsheetApp.getActiveSheet();
  var dataRange = spreadSheet.getDataRange();
  var data = dataRange.getValues();
  // 遍历所有行,只发送未标记已发送的记录
  for (var i = 1; i < data.length; i++) {
    var row = data[i];
    // 第12列是新增的发送状态列,为空代表未发
    if (row[11] === '') {
      var emailAddress = row[3];
      var message = 'At '+ row[0] + 'You purchased the following:' + '\n\n' + row[4] + '\n' + row[5] + '\n' + row[6] + '\n' + row[7] + '\n' + row[8] + '\n' + row[9] + '\n' + 'Your total cost is $' + row[10];
      var subject = 'Personal Purchase Reciept';
      MailApp.sendEmail(emailAddress, subject, message);
      // 发送成功后标记为已发送,对应表格行号是i+1,列号是12(表格行列从1开始计数)
      spreadSheet.getRange(i + 1, 12).setValue('已发送');
    }
  }
}

优势

  • 哪怕短时间多笔提交也不会漏发、重复发
  • 对账岗位可以直接通过「邮件发送状态」列核对哪些采购记录已经给学生发了回执,和银行到账记录对应更方便

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:48:03