首页 > 解决方案 > 当特定列更新为“是”并且电子邮件 ID 从同一工作表中的另一列中获取时,Google 工作表的电子邮件触发器

问题描述

我有多个将每天更新的行和列,我希望触发电子邮件以从同一张表的另一列中获取邮件 ID。

例如,我在 C 列中有很多电子邮件 ID [不能提及特定范围,因为数据将每天添加],当 H 列的值标记为“是”时,C 列中相应行的邮件 ID 必须采取和电子邮件应该被触发到该ID。我尝试了多个脚本,但它不起作用。

标签: excelgoogle-apps-scriptgoogle-sheets

解决方案


为您的脚本启用 Gmail 服务

  1. 转到您的工作表,然后单击工具 > 脚本编辑器
  2. 在脚本编辑器中,单击资源 > 高级 Google 服务...启用“Gmail API”并单击确定

代码

将以下代码复制并粘贴到工作表的脚本编辑器中(并根据需要进行任何修改):

function sendEmail(dest, data) {
  var messageBody = 'Hello, there has been a new release:\n\n' + JSON.stringify(data);
  GmailApp.sendEmail(dest, 'Automated email from sheet', messageBody);
}

function onEditTrigger(e) {
  var range = e.range;
  if (range.columnStart == 8 && e.value == 'YES') {
    // Prepare the email
    var row = range.getSheet().getRange(e.range.rowStart, 1, 1, 8).getValues()[0];
    var headers = range.getSheet().getRange(1, 1, 1, 8).getValues()[0];

    var dest = row[1];
    var data = {};
    for (var i=0; i<8; i++) {
      data[headers[i]] = row[i];
    }

    sendEmail(dest, data);
  }
}

该代码将获取已修改行的前 8 列,并将它们与标题一起以 JSON 格式发送到 B 列中指定的电子邮件。您可以在此处查看我用于测试的电子表格。我收到的电子邮件如下所示:

在此处输入图像描述

将 onEditTrigger 函数设置为可安装触发器

  1. 在工作表的脚本编辑器中,单击时钟图标(“当前项目的触发器”)
  2. 单击添加触发器按钮
  3. 选择onEditTrigger函数作为要运行的函数,并选择On edit作为事件类型(示例触发器配置)并点击保存

现在,每次修改工作表时,上面的代码都会运行,如果合适,发送消息。


推荐阅读