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

如何实现Google Sheet复选框被勾选时自动发送邮件

Google Sheet 复选框勾选触发自动邮件操作指南

完全不需要脚本基础,按照以下步骤操作即可实现需求:

1. 打开绑定脚本编辑器

  • 打开你要设置的目标Google Sheet表格
  • 点击顶部菜单栏「扩展程序」>「Apps 脚本」,进入脚本编辑页
  • 清空页面默认生成的function myFunction() {}冗余代码

2. 粘贴自定义代码

将以下代码粘贴到编辑框中,按照注释修改你需要的自定义参数即可:

function sendEmailWhenChecked(e) {
  //  ========== 以下为可自定义的参数,按照你的需求修改 ==========
  const CHECKBOX_COL = 6; // 复选框所在列,A列=1、B列=2...F列就是6,不需要改
  const SEND_STATUS_COL = 7; // 记录邮件发送状态的列,默认用G列,防止重复发送
  const RECEIVER_EMAIL = "收件人邮箱@xxx.com"; // 填写收件人邮箱,多个用英文逗号分隔
  const EMAIL_TITLE = "复选框触发的通知邮件"; // 填写你需要的邮件主题
  // 填写邮件正文内容,\n代表换行,可自行调整格式,引用当前行其他列内容可参考示例
  const EMAIL_CONTENT = `您好:
这是F列复选框被勾选后自动发送的通知。
当前行前5列的内容为:${e.range.getSheet().getRange(e.range.getRow(), 1, 1, 5).getDisplayValues()[0].join('、')}
`;
  //  ========== 以上为自定义参数,下方逻辑代码不需要修改 ==========
  const activeRange = e.range;
  const currentSheet = activeRange.getSheet();
  // 校验触发条件:仅勾选复选框、且未发送过邮件时执行
  if (activeRange.columnStart === CHECKBOX_COL && e.value === "TRUE" && currentSheet.getRange(activeRange.rowStart, SEND_STATUS_COL).getValue() !== "已发送") {
    MailApp.sendEmail(RECEIVER_EMAIL, EMAIL_TITLE, EMAIL_CONTENT);
    currentSheet.getRange(activeRange.rowStart, SEND_STATUS_COL).setValue("已发送");
  }
}

3. 配置自动触发器

  • 点击脚本编辑页左侧菜单栏的闹钟图标(「触发器」)
  • 点击右下角「添加触发器」,按如下规则设置:
    • 选择要运行的函数:sendEmailWhenChecked
    • 选择事件来源:来自电子表格
    • 选择事件类型:编辑时
  • 其余参数保持默认,点击保存后按照页面提示完成Google账号授权即可

4. 效果测试

返回Google Sheet表格,勾选任意一行F列的复选框,等待3-5秒即可自动发送邮件,对应行G列会自动标记「已发送」,避免后续重复触发。

注意事项

  • 首次授权时如果出现「Google未验证此应用」的提示,点击「高级」>「前往(你的脚本名称)」即可继续授权,属于私有脚本的正常提示,无安全风险
  • 如果需要调整邮件内容、收件人等配置,直接修改代码里的自定义参数即可
  • 若复选框需要更换到其他列,修改CHECKBOX_COL的对应数值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:45:00