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

Google Apps Script添加工单描述至邮件失败求助

问题解决:添加工单描述到邮件并修复发送失败问题

核心问题原因

  1. 未定义变量触发脚本中断:当处理第1条表单提交(LastRow=2)时,原代码未给LastAutoNumber赋值,邮件内容里的(LastAutoNumber+1)会直接报错,终止脚本运行,导致邮件无法发送。
  2. 字符串语法错误:原代码中邮件内容使用了实际换行,JavaScript不允许普通字符串直接跨多行,这会引发语法错误。
  3. 变量作用域错误:你添加的Description变量如果放在错误位置,可能无法正确读取对应单元格的值。

修正后的完整脚本

function addAutoNumber() {
  var sheet = SpreadsheetApp.getActive().getSheetByName("Form responses 1");
  var LastRow = sheet.getLastRow();
  var AutoNumberStart = 100;  

  //---- 首次运行初始化 ------------
  if (sheet.getRange(1, 1).getValue() == "Timestamp") {
    sheet.insertColumnBefore(1);
    sheet.getRange(1, 1).setValue("Job Number");
    sheet.getRange("A2:A").setNumberFormat(0); 
    if (LastRow > 1) {
      for(var ii=2; ii <= LastRow; ii++) {
        sheet.getRange(ii, 1).setValue(AutoNumberStart);
        AutoNumberStart++;
      }
    }
  }

  // ---- 为新提交添加工单号 ----------
  if (sheet.getRange(LastRow, 1).isBlank()) {
    var currentJobNumber;
    if (LastRow == 2) {
      currentJobNumber = AutoNumberStart;
      sheet.getRange(LastRow, 1).setValue(currentJobNumber);
    } else {
      var LastAutoNumber = sheet.getRange(LastRow-1, 1).getValue();
      currentJobNumber = LastAutoNumber + 1;
      sheet.getRange(LastRow, 1).setValue(currentJobNumber);
    }
    
    // 获取工单描述(确认列号6是否对应「Describe the Issue」,顺序有变则调整数字)
    var Description = sheet.getRange(LastRow, 6).getValue();
    // 获取收件人邮箱
    var EmailAddress = sheet.getRange(LastRow, 3).getValue();
    var Subject = "Your Job Number";
    
    // 修复字符串换行,加入工单描述
    var Message = `Your job has been logged.\n\n` +
                  `Issue Description:\n${Description}\n\n` +
                  `If you need to send more photos, please reply to this email with the photos attached.\n\n` +
                  `Your job number is: ${currentJobNumber}\n\n` +
                  `Thank you!`;
    
    MailApp.sendEmail(EmailAddress, Subject, Message);
  }
}

关键修改说明

  • 统一工单号变量:新增currentJobNumber变量,覆盖首次提交和后续提交场景,彻底避免未定义变量的错误。
  • 正确放置描述变量:将Description定义在获取邮箱之后、构建邮件内容之前,确保读取的是当前提交行的描述内容(注意核对列号6是否对应表单的「Describe the Issue」字段)。
  • 修复字符串语法:使用模板字符串(反引号`)结合\n转义符处理换行,消除语法错误。
  • 脚本稳定性优化:所有变量提前定义或在分支中赋值,确保脚本不会因变量未定义而中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:15:47