【问题标题】:Send specific email when cell is changed更改单元格时发送特定电子邮件
【发布时间】:2020-06-10 22:21:17
【问题描述】:

所以我有一个表格并收集电子邮件。 在电子表格中包含状态列 (C) 数据验证:未开始、进行中、待处理、已关闭

我对 Google 表格脚本非常陌生,因此如果一行的状态 (C) 列更改为已关闭。电子邮件将发送到电子邮件列 (E) 上的相应电子邮件地址。

“您的票已被解决”等以这种方式。 就像我说的,我是编程新手(javascript),如果有人可以提供帮助,将不胜感激

Timestamp              _UID          Status        Name     Email Address
6/12/2020 0:47:28   Ticket-21228    Not Started Stan Smith  abc@gmail.com
6/12/2020 0:51:21   Ticket-60128    Closed      John Smith  zxy@gmail.com

【问题讨论】:

  • 欢迎来到 Stack Overflow!你已经写了什么代码?请阅读this guide on producing code for a good quality question,然后在您的问题中包含并标记您的代码。干杯!
  • 看看Restrictions一个简单的触发器无法发送电子邮件,因为Gmail服务需要授权
  • 嗨@Cooper,我很抱歉,因为我对编码还是很陌生,(确切地说是生疏)。基本上我在不同的线程中遇到了你的回复。 stackoverflow.com/questions/58275064/… ,但是 C 列的单元格更改为关闭,然后电子邮件地址在同一行的 E 列。我修改了您的回复,触发器正在工作。只是我没有收到电子邮件。 (不是权限问题,因为我设置的另一个触发器(onFormSubmit)起作用了)。如果我是新手,我深表歉意。
  • 我还不清楚你想要什么。如果您要创建一个示例,我可能会弄清楚。或者向我提供你所拥有的和你想要的。不要麻烦给我电子表格的链接,因为我不会点击它。
  • @Cooper 我明白了,我用一张图片更新了我的问题。如果 C 列更改为“已关闭”,请使用 E 列中的电子邮件地址在同一行发送电子邮件。

标签: javascript google-apps-script google-sheets google-forms


【解决方案1】:

这必须是一个可安装的触发器,因为它使用需要许可的 Gmail。 您需要为电子邮件添加工作表名称和消息

function onMyEdit(e) {
  //e.source.toast('Entry');
  const sh=e.range.getSheet();
  if(sh.getName()=="Sheet1" && e.range.columnStart==3 && e.value=="Closed") {
    let vA=sh.getRange(e.range.rowStart,1,1,sh.getLastColumn()).getValues()[0];
    var body=Utilities.formatString('You create this')
    GmailApp.sendEmail(vA[4], vA[5], body);  
  }
}

所以你可以直接用这样的东西来测试它:

function testMyOnEdit() {
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getSheetByName('Sheet1');
  const rg=sh.getRange(3,3);
  let e={range:{columnStart:3,rowStart:3},source:ss,value:'Closed'};
  e.range=rg;
  onMyEdit(e);
}

执行此操作时不要忘记删除触发器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多