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

Google Sheet脚本需求:新增姓名和电话时自动发送邮件

Google Sheet新增联系人时自动发邮件解决方案

1. 替换脚本代码

把你现有的代码替换成以下内容,它会自动识别新增行,提取姓名和电话并发送邮件:

function sendEmailOnNewRow(e) {
  // 只响应新增行的操作
  if (e.changeType !== 'INSERT_ROW') return;

  const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  const newRowNum = targetSheet.getLastRow();
  
  // 假设姓名在A列、电话在B列,根据你的表格结构调整列号
  const userName = targetSheet.getRange(newRowNum, 1).getValue();
  const userPhone = targetSheet.getRange(newRowNum, 2).getValue();

  // 姓名和电话都不为空才发送邮件
  if (!userName || !userPhone) return;

  // 替换为你要发送的目标邮箱,也可从表格指定列动态获取
  const recipientEmail = "your-target-email@example.com";
  const emailSubject = `新增联系人:${userName}`;
  const emailContent = `新联系人信息:
姓名:${userName}
电话:${userPhone}`;

  MailApp.sendEmail(recipientEmail, emailSubject, emailContent);
}

2. 创建安装型触发器

因为自动发送邮件需要授权,不能用简单触发器,必须手动创建安装型触发器:

  • 打开Google Sheet,点击顶部菜单「工具」>「脚本编辑器」
  • 点击左侧栏的闹钟图标(「触发器」)
  • 点击「添加触发器」,按以下配置:
    • 选择函数:sendEmailOnNewRow
    • 事件源:「从电子表格」
    • 事件类型:「更改」
  • 点击「保存」,按照提示完成权限授权即可

关键说明

  • 调整代码中的列号:如果你的姓名在C列、电话在D列,就把getRange(newRowNum, 1)改成getRange(newRowNum, 3),getRange(newRowNum, 2)改成getRange(newRowNum, 4)
  • 动态获取收件邮箱:如果要把邮件发送到新增行里的邮箱(比如E列),把recipientEmail改成targetSheet.getRange(newRowNum, 5).getValue()
  • 避免误触发:代码里判断了changeType为INSERT_ROW,只有新增行时才会执行,其他编辑操作不会触发邮件发送

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:27:36