如何用Google Apps Script实现Google Sheet状态变更时自动发送带加粗内容的邮件
嘿,我帮你搞定这个Google Sheets状态变更自动发邮件的需求,下面是完整的步骤和代码:
实现Google Sheets状态变更自动发邮件的方案
1. 创建并编写Google Apps Script
首先打开你的Google表格,点击顶部菜单栏的「扩展程序」→「Apps Script」,把默认的代码替换成下面的脚本:
function sendStatusUpdateEmail(e) { // 获取触发编辑的单元格范围 const editRange = e.range; const targetSheet = editRange.getSheet(); // 仅处理D列(第4列)的非表头行变更 if (editRange.getColumn() !== 4 || editRange.getRow() === 1) { return; } const newStatus = editRange.getValue(); // 如果状态被清空,不发送邮件 if (!newStatus) return; // 提取当前行的姓名、邮箱和标识符 const userName = targetSheet.getRange(editRange.getRow(), 1).getValue(); const userEmail = targetSheet.getRange(editRange.getRow(), 2).getValue(); const userIdentifier = targetSheet.getRange(editRange.getRow(), 3).getValue(); // 替换成你要指定的发件人邮箱(必须是当前Google账号有权使用的邮箱) const senderEmail = "your-sender-email@example.com"; // 邮件主题 const emailSubject = `状态更新通知:你的标识符 ${userIdentifier} 已变更`; // 邮件正文(用HTML标签<strong>来加粗特定单词,按需修改) const emailBody = ` <p>亲爱的 ${userName}:</p> <p>你的 <strong>标识符</strong> ${userIdentifier} 的 <strong>状态</strong> 已更新为:<strong>${newStatus}</strong></p> <p>如有任何疑问,请随时联系我们。</p> `; // 发送邮件,启用HTML格式并指定发件人 MailApp.sendEmail({ to: userEmail, subject: emailSubject, htmlBody: emailBody, from: senderEmail }); // 可选:弹出提示框确认邮件已发送 SpreadsheetApp.getUi().alert(`已向 ${userEmail} 发送状态更新邮件!`); }
代码关键点说明
- 触发范围判断:只对D列(第4列)的非表头行生效,避免误触发
- 发件人设置:
senderEmail要替换成你实际要用的发件邮箱,必须是当前Google账号拥有权限的邮箱(比如账号本身、别名,或者G Suite组织内的授权邮箱) - 正文加粗:用HTML的
<strong>标签包裹需要加粗的单词,MailApp会自动渲染为加粗样式 - 空值判断:如果D列被清空,不会发送邮件,避免无效触发
2. 设置可安装触发器
因为简单的onEdit触发没有发送邮件的权限,所以需要设置可安装触发器:
- 在Apps Script编辑器左侧,点击「触发器」图标(闹钟样式)
- 点击「添加触发器」,按以下配置设置:
- 选择函数:
sendStatusUpdateEmail - 部署类型:「从电子表格」
- 事件源:「编辑时」
- 事件类型:「当更改时」
- 失败通知:按需选择(比如选「立即通知我」方便排查问题)
- 选择函数:
- 保存后会弹出权限验证窗口,按照提示完成授权即可
3. 测试验证
回到你的Google表格,在任意一行的D列选择A/B/C状态,等待几秒后:
- 表格会弹出提示框确认邮件已发送(如果保留了
alert代码) - 对应行的B列邮箱会收到带有加粗内容的邮件
内容的提问来源于stack exchange,提问作者Vector JX
相关产品推荐
相关产品推荐

