使用sendemail函数时收到错误消息

时间:2013-08-05 14:30:49

标签: google-apps-script google-sheets

我编写了一个脚本,使用每周时间驱动的触发器从谷歌电子表格发送自动电子邮件。我测试了它,它似乎只有在我点击“运行”时才能工作。时间驱动的触发器返回错误消息“无效的电子邮件:#VALUE!(第14行,文件”代码“)”。我哪里出错了?任何帮助将不胜感激!

这是我到目前为止所做的:

function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;  // First row of data to process
  var numRows = 20;   // Number of rows to process
  // Fetch the range of cells A2:c20
  var dataRange = sheet.getRange(startRow, 1, numRows, 20)
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (i in data) {
    var row = data[i];
    var emailAddress = row[0];  // First column
    var message = "Project Owner: " + row[3] + '\n' + "Status: " + row[2]; //3rd column
    var subject = "Project Update: " + row[1];                             //2nd column
    MailApp.sendEmail(emailAddress, subject, message);
  }
}

1 个答案:

答案 0 :(得分:0)

作为基于时间的触发器功能运行时,SpreadsheetApp.getActiveSheet()没有活动的电子表格。请改用openById().getSheetByName()

使用for (i in data) 迭代数组可能会给您带来问题。请改用for (var i=0; i<data.length; i++)