Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 从编辑过的电子表格发送电子邮件时出现问题_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 从编辑过的电子表格发送电子邮件时出现问题

Google apps script 从编辑过的电子表格发送电子邮件时出现问题,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我试图写一个脚本,将发送一封电子邮件给一个特定的人的基础上输入的电子表格。我很难收到要发送的电子邮件。我想让这个脚本做X件事: 监视第4列中的任务线索名称 根据姓名输入向相应的潜在客户发送电子邮件 不要发送重复的电子邮件。脚本需要检查第8列并验证电子邮件是否已发送,如果未发送,则发送电子邮件 将电子表格名称插入电子邮件主题,并使用第2列作为电子邮件的正文/邮件 以下是我当前的脚本代码: function sendEmail() { var emailColumn = 8; var s

我试图写一个脚本,将发送一封电子邮件给一个特定的人的基础上输入的电子表格。我很难收到要发送的电子邮件。我想让这个脚本做X件事:

  • 监视第4列中的任务线索名称
  • 根据姓名输入向相应的潜在客户发送电子邮件
  • 不要发送重复的电子邮件。脚本需要检查第8列并验证电子邮件是否已发送,如果未发送,则发送电子邮件
  • 将电子表格名称插入电子邮件主题,并使用第2列作为电子邮件的正文/邮件
以下是我当前的脚本代码:

function sendEmail() {
  var emailColumn = 8;
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var row = sh.getActiveCell().getRowIndex();
  var emailSent = "Yes. Email Sent";
  var range = sh.getActiveCell();
  var taskLeads = ["noah", "tony", "larry"];
  var leadsColumn = 4;
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = SpreadsheetApp.getActiveSheet();

  if (range.getColumn() == leadsColumn && range.getValue().toLowerCase() == taskLeads[0]) {
    var recipient = "email@email.com"; // email address
    var body = sh.getRange(row, 2); // Message contained in second column
    var subject = "New to do item in " + ss.getName(); //Pulls Spreadsheet name
    sh.getRange(row, 10).setValue(body);  //Testing
    sh.getRange(row, 11).setValue(subject); //Testing
    sh.getRange(row, 9).setValue(recipient); //Testing
    MailApp.sendEmail(recipient, subject, body);

    if (range.getColumn() == emailColumn && range.getValue().toLowerCase() == valueToWatch) {
      sh.getRange(row, 8).setValue(emailSent);
    }
  }
}

我使用此脚本在表单提交时向用户发送电子邮件。您可以从处理Web表单的Google电子表格运行它

  var EMAIL_SENT = "Email_Sent";

function sendEmails2() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var startRow = 2; //starts checking from row 2 
  var numRows = 1000; //to handle at least the first 1000 rows
  var dataRange = sheet.getRange(startRow, 1, numRows, 1000)
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[0];  //gets the email address of the user in Col 1
    var message = row[1];   // gets the message from Col 2    
    var emailSent = row[2]; // writes "Email_Sent" in Col 3     
    if (emailSent != EMAIL_SENT) {  
      var subject = "Place your default subject";
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT);
      SpreadsheetApp.flush();
    }
  }
}
var EMAIL\u SENT=“EMAIL\u SENT”;
函数sendmails2(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheets()[0];
var startRow=2;//从第2行开始检查
var numRows=1000;//至少处理前1000行
var dataRange=sheet.getRange(startRow,1,numRows,1000)
var data=dataRange.getValues();
对于(变量i=0;i
据我所知,有一些特定的功能可用于从电子表格发送电子邮件,还有一些其他功能可用于在电子表格中实时更新单元格。我的问题最终是关于要调用的正确函数,以及如何使该函数中的代码正确工作。