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

Google Apps Script条件触发邮件故障:无法发送预期邮件

问题排查与修复方案

核心逻辑错误(导致邮件永远不触发)

  • getValues() 返回的是二维数组(格式为 [[值1], [值2], ...]),直接用 values <= -5 做比较完全不成立,数组与数字的比较逻辑永远返回 false,所以邮件发送代码块根本不会执行。
  • 你提到A列是商品名称(如Apples、Berries),用字符串和 -5 做数值比较本身逻辑错误——应该是判断库存数量列(比如B列)的值是否≤-5,再取对应行的A列商品名称。

其他待修正问题

  • 就算条件触发,直接拼接数组 values 到邮件内容里,会得到混乱的格式(比如 Buy Goods Apples,Berries,...),无法清晰列出符合条件的商品。
  • 首次运行脚本时未授权 MailApp 发送邮件权限,会导致脚本执行失败(可查看脚本编辑器「执行记录」确认是否有授权错误)。

修复后的示例代码

function Buy() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const buySheet = ss.getSheetByName("Buy");
  // 假设A列是商品名称,B列是库存数量,取A2:B7的所有数据
  const data = buySheet.getRange("A2:B7").getValues();
  const emailSheet = ss.getSheetByName("Email");
  const emailAddress = emailSheet.getRange("E2").getValue();

  // 筛选出库存≤-5的商品名称
  const needBuyGoods = data.filter(row => row[1] <= -5).map(row => row[0]);

  // 有符合条件的商品才发送邮件
  if (needBuyGoods.length > 0) {
    const message = 'Buy Goods: ' + needBuyGoods.join(', ');
    const subject = 'Buys Alert';
    MailApp.sendEmail(emailAddress, subject, message);
  }
}

额外检查点

  • 确认「Email」工作表的E2单元格填写了有效的收件邮箱地址。
  • 查看脚本编辑器的「执行记录」(左侧菜单「执行」),确认是否有报错信息,比如权限不足、工作表名称拼写错误等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:25:23