首页 > 解决方案 > 如何使用辅助表存储电子邮件,根据任务状态向特定人员发送自动电子邮件?

问题描述

血腥的标题,但我找不到更清晰的方法。

我没有编码经验,我想知道是否可以做我将要解释的事情。

这是我的示例表

如果任务状态设置为紧急,我想要做的是自动向分配给任务的人发送电子邮件,同时按名称引用人员并有一个包含所有名称和相应电子邮件的辅助表。

我四处浏览,发现了一些类似的问题,不幸的是我没有成功适应。我得到的一件事是我需要设置一个 onEdit 触发器,我已经完成了,但从这里开始我完全一无所知。

有人可以指出我正确的方向吗?我不知道从哪里开始。

期待听到您的建议。感谢并在这些疯狂的时代保持安全!

标签: google-apps-scriptgoogle-sheets

解决方案


这应该让你开始:

您需要为 onMyEdit 函数创建一个可安装的触发器。该对话框将通过为您提供 html 格式来显示电子邮件,从而帮助您设计电子邮件。准备好后,只需注释掉对话框并删除//GmailApp.sendEdmail() 行前面的 from。

function onMyEdit(e) {
  //e.source.toast('Entry');
  const sh=e.range.getSheet();
  if(sh.getName()=="Tracker") {
    if(e.range.columnStart==2 && e.value=='Urgent') {
      //e.source.toast('flag1');
      const title=e.range.offset(0,-1).getValue();
      const desc=e.range.offset(0,1).getValue();
      const comm=e.range.offset(0,3).getValue();
      if(title && desc) {
        var html=Utilities.formatString('<br />Task Title:%s<br />Desc:%s<br />Comments:%s',title,desc,comm?comm:"No Additional Comments");
        //GmailApp.sendEmail(e.range.offset(0,2).getValue(), "Urgent Message from Tracker", '',{htmlBody:html});
        SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(html).setWidth(600), 'Tracker Message');
        e.source.toast('Email Sent');
      }else{
        e.source.toast('Missing Inputs');
      }
    }
  }
}

GmailApp.sendEmail()


推荐阅读