使用特定值编辑单元格时发送电子邮件

时间:2015-02-05 18:54:11

标签: email google-apps-script google-sheets eventtrigger

我已设置Google表单以记录用户报告的有关我们维护的数据库的错误。回复会转到Google表格中,并会记录用户的电子邮件。从本质上讲,我希望在Google表格中有一个状态字段 - 当它设置为"完成" (这将与响应位于同一行)我希望将电子邮件自动发送给提交响应的用户,让他们知道他们的响应状态是否已完成。有点像许多公司使用的票务系统(但我们没有足够的带宽来设置它,所以我们正在寻找简单/免费的东西)。

2 个答案:

答案 0 :(得分:1)

您无法在onEdit触发器内发送电子邮件。因此,您必须在某处保存编辑内容,可能在UserProperties中,并且有一个基于时间的触发器,每分钟都会将此值发送到您的电子邮件中。

请参阅:Email Notifications in Google Spreadsheets

Google电子表格支持行编辑的电子邮件通知(工具 - 通知规则),但上次我尝试时,它从未奏效。

答案 1 :(得分:0)

创建onEdit()函数,在编辑时捕获单元格值,然后运行代码。

function onEdit(e){
  // Capture the cells value after it is edited
  var valCell = e.value;
  Logger.log('The cell value is: ' + valCell);

  if (valCell === "Complete") {
    //Get the range of the cell
    var theRange = e.range;

    //Get the row of the range
    var theRowOfEdit = theRange.getRow();

    // Returns the cell with email
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheets()[0];
    var cell = sheet.getRange("B" + theRowOfEdit.toString());

    //Get the user email
    var userEmail = cell.getValue();

    //Send the email
  }
}

这不是您需要的完整代码。但是,设置此代码;测试它,调试它,如果你有一个特定的问题,发布另一个问题,错误信息和代码行不起作用。

在代码编辑器和/或Logger.log()语句中使用debug来调试代码。