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

如何为Google Apps Script温度记录代码添加超8℃邮件发送功能

实现逻辑

你只需要在temperature的case分支内增加数值转换、阈值判断、邮件发送三个环节的代码即可,修改后完整代码如下:

完整修改后代码

function doGet(e) { 
  Logger.log( JSON.stringify(e) );
  var result = 'Ok';
  if (e.parameter == 'undefined') {
    result = 'No Parameters';
  }
  else {
    var sheet_id = '1hKXZEIx160TwXi5yUztGBDijNaGgAOjKWSmY-Mowo9M';  // Spreadsheet ID
    var sheetActive = SpreadsheetApp.openById(sheet_id);
    var sheet = sheetActive.getSheetByName("Theatre");
    var newRow = sheet.getLastRow() + 1;                        
    var rowData = [];
    var Curr_Date = new Date();
    rowData[0] = Curr_Date; // Date in column A
    var Curr_Time = Utilities.formatDate(Curr_Date, "Africa/Nairobi", 'HH:mm:ss');
    rowData[1] = Curr_Time; // Time in column B
    for (var param in e.parameter) {
      Logger.log('In for loop, param=' + param);
      var value = stripQuotes(e.parameter[param]);
      Logger.log(param + ':' + e.parameter[param]);
      switch (param) {
        case 'temperature':
          rowData[2] = value; // Temperature in column C
          result = 'Temperature Written on column C'; 

          // --- 新增温度告警逻辑开始 ---
          // 将字符串类型的温度转为数值
          const temperatureNum = Number(value);
          // 替换为你的实际收件邮箱地址
          const receiveEmail = "your-alert-email@example.com";
          // 先判断格式合法再做阈值判断,避免非数值内容报错
          if (!isNaN(temperatureNum) && temperatureNum > 8) {
            const mailTitle = `温度告警:当前温度${temperatureNum}℃ 超过阈值`;
            const mailContent = `
上报时间:${Utilities.formatDate(Curr_Date, "Africa/Nairobi", 'yyyy-MM-dd HH:mm:ss')}
上报温度:${temperatureNum}℃
已超出预设阈值8℃,请及时核查处理。
            `;
            // 调用内置方法发送邮件
            GmailApp.sendEmail(receiveEmail, mailTitle, mailContent);
            result += ",温度超出阈值,告警邮件已发送";
          }
          // --- 新增温度告警逻辑结束 ---

          break;
        // case 'humidity':
        //   rowData[3] = value; // Humidity in column D
        //   result += ' ,Humidity Written on column D'; 
        //   break;  
        default:
          result = "unsupported parameter";
      }
    }
    Logger.log(JSON.stringify(rowData));
    var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
    newRange.setValues([rowData]);
  }
  return ContentService.createTextOutput(result);
}
function stripQuotes( value ) {
  return value.replace(/^["']|['"]$/g, "");
}

注意事项

  • 第一次部署运行前可以先手动执行一次代码,触发权限申请,同意脚本访问表格、发送邮件的权限,否则邮件发送会失败
  • 如果不想短时间内重复收到大量告警邮件,可以额外加个时间间隔判断,比如将上次发信时间存在表格的固定单元格里,两次发信间隔至少10分钟才再次发送
  • 部署为Web App时,执行身份选择你自己的谷歌账号,访问权限按需设置即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:54:04