求助:基于Google Sheets指定标签页状态触发自动发送邮件
实现Google Sheets下拉选择自动发送邮件的脚本方案
Google Sheets的公式确实没法直接触发邮件发送,得用Google Apps Script来实现。下面是适配你需求的完整方案:
步骤1:打开脚本编辑器
打开你的表格,点击顶部菜单栏的「扩展」→「Apps Script」,进入脚本编辑界面。
步骤2:替换脚本内容
删除默认的myFunction,粘贴下面的代码(注意替换代码里的订单表单链接和主管联系方式):
function onEdit(e) { // 限定触发的标签页 const targetSheets = ['Anchor', 'Book Club', 'Classroom Library']; const sheet = e.source.getActiveSheet(); // 检查是否在目标标签页,且修改的是第1列(A列) if (!targetSheets.includes(sheet.getName()) || e.range.getColumn() !== 1) return; const status = e.value; const row = e.range.getRow(); // 获取C列的邮箱地址 const recipient = sheet.getRange(row, 3).getValue(); // 跳过表头(如果第1行是表头的话,可根据实际调整) if (row === 1) return; // 检查邮箱是否有效,且状态是指定值 if (!recipient || !['Approved', 'Not Approved'].includes(status)) return; let subject, body; if (status === 'Approved') { subject = '你的请求已通过'; // 替换成你的Google Docs订单表单实际链接 const formLink = 'https://docs.google.com/forms/d/XXX/edit'; body = ` 您好, 你的请求已被标记为「Approved」。请点击下方链接填写订单表单: ${formLink} 如有疑问,请随时联系我们。 `; } else { subject = '你的请求未通过'; // 替换成实际的学生改进主管联系方式 const supervisorContact = 'XXX(邮箱:xxx@xx.com / 电话:XXX)'; body = ` 您好, 你的请求已被标记为「Not Approved」。请联系学生改进主管 ${supervisorContact} 了解改进方向。 如有疑问,请随时联系我们。 `; } // 发送邮件 GmailApp.sendEmail(recipient, subject, body); }
步骤3:设置触发机制
- 在脚本编辑器界面,点击左侧的「触发器」图标(时钟形状)。
- 点击「添加触发器」:
- 选择函数:
onEdit - 选择部署类型:「从电子表格」
- 选择事件类型:「编辑时」
- 点击「保存」,按照提示完成授权(首次运行需要授权脚本访问邮箱和表格)。
- 选择函数:
步骤4:测试功能
回到表格,在目标标签页的A列下拉选择「Approved」或「Not Approved」,对应行C列的邮箱就会收到自动发送的邮件。
注意事项
- 确保C列的邮箱地址格式正确,否则邮件会发送失败。
- 脚本首次运行需要授权,授权过程中如果提示「此应用未验证」,点击「高级」→「转到XX脚本(不安全)」完成授权(这是Google对自定义脚本的常规提示,你的脚本是自己编写的,安全可控)。
内容的提问来源于stack exchange,提问作者Beth Varsho
相关产品推荐
相关产品推荐

