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

Google Sheets特定单元格值变更时触发自动邮件设置需求

解决方案:Google表格状态变更时自动发送邮件通知

我来帮你搞定这个需求——用Google Apps Script就能实现当D列(Status)的值变更时,自动给对应B列邮箱发送指定内容邮件的功能,具体步骤如下:

步骤1:打开脚本编辑器

  • 打开你的目标Google表格,点击顶部菜单栏的「扩展程序」→「Apps Script」,进入脚本编辑界面。

步骤2:编写触发脚本

把下面的代码复制到编辑器里,然后根据你的实际需求修改邮件主题、内容和指定发件人:

function onStatusChange(e) {
  // 获取编辑事件的核心信息
  const editedRange = e.range;
  const targetSheet = editedRange.getSheet();
  
  // 仅处理D列(第4列)的非表头行编辑
  if (editedRange.getColumn() !== 4 || editedRange.getRow() === 1) return;
  
  // 获取当前行的关键数据:姓名、邮箱、新状态
  const userName = targetSheet.getRange(editedRange.getRow(), 1).getValue();
  const userEmail = targetSheet.getRange(editedRange.getRow(), 2).getValue();
  const newStatus = editedRange.getValue();
  
  // 仅在状态从空变为指定选项(A/B/C)时触发邮件,避免重复发送
  if (!newStatus || !['A', 'B', 'C'].includes(newStatus)) return;
  
  // 自定义邮件配置,按需修改
  const senderEmail = 'your-designated-sender@example.com'; // 必须是当前账号的别名或G Suite授权账号
  const emailSubject = `状态更新通知:${userName}的状态已变更`;
  const emailBody = `
  您好,
  
  ${userName}的状态已更新为:${newStatus}
  
  请知悉。
  `;
  
  try {
    // 发送邮件,指定发件人
    MailApp.sendEmail({
      to: userEmail,
      from: senderEmail,
      subject: emailSubject,
      body: emailBody
    });
    // 可选:在E列添加发送状态标记,方便追踪
    targetSheet.getRange(editedRange.getRow(), 5).setValue('✅ 邮件已发送');
  } catch (error) {
    console.error('邮件发送失败:', error);
    targetSheet.getRange(editedRange.getRow(), 5).setValue('❌ 邮件发送失败');
  }
}

步骤3:配置可安装触发器(关键)

默认的简单onEdit触发器有权限限制,无法使用from参数指定发件人,所以需要设置可安装的编辑触发器:

  1. 在脚本编辑器左侧,点击时钟样式的「触发器」图标。
  2. 点击「添加触发器」,按以下配置设置:
    • 选择要运行的函数:onStatusChange
    • 部署类型:「受限制」(仅你能访问)
    • 事件源:「电子表格」
    • 事件类型:「编辑时」
  3. 点击保存,按照提示完成授权即可。

关键细节说明

  • 指定发件人限制:from参数的邮箱必须是当前Google账号的别名,或者你拥有权限的G Suite账号邮箱,否则会触发权限错误。如果不需要指定发件人,直接删除from: senderEmail,这一行即可,默认用当前账号发送。
  • 重复发送防护:代码里加入了状态判断,只有当状态从空变为A/B/C时才发送邮件,避免同一状态重复编辑时多次发件。
  • 错误追踪:通过try-catch块捕获发送错误,并在表格E列标记状态,方便你快速排查问题。

注意事项

  • 确保B列的邮箱格式正确,否则邮件会发送失败。
  • Google Apps Script有邮件发送限额:普通个人账号每天最多发送100封,G Suite/Workspace账号限额更高,超出限额会暂时无法发送。
  • 第一次授权时如果出现“此应用未验证”提示,点击「高级」→「转到XX脚本(不安全)」即可完成授权(这是Google对自定义脚本的常规提示,你的脚本是自己控制的,安全没问题)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:36:36