首页 > 解决方案 > 根据给定数据发送自动电子邮件

问题描述

每当Google表单将任何数据填充到工作表“数据”中时,我都使用以下脚本通过工作表“参考”发送自动电子邮件。

我不知道如何创建一个循环来执行此任务,即每当从 Google 表单中更新工作表“数据”上的任何数据时,在发送后自动将一封电子邮件发送到“参考”工作表 Col“G”中可用的邮件发送给该特定实体的电子邮件,代码应在“参考”表 Col“N”中提及作为邮件发送。

“参考”表 Col“O”是通知文本 “参考”表 Col“M”是主题 “参考”表 Col“G”是代码将发送上述数据的电子邮件

代码不应在我提到的“已发送电子邮件”上的“参考”表 Col“N”中的那些 ID 上再次发送电子邮件。

function sendEmails2() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheetname= sheet.getSheetByName("Reference");
  var startRow = 2; // First row of data to process
  var numRows = sheetname.getLastRow("Reference"); // Number of rows to process
  // Fetch the range of cells A2:B3
  var dataRange = sheetname.getRange(startRow, 1, numRows, 15);
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[6]; // First column
    var message = row[13]; // Second column
    var emailSent = row[14]; // Third column
    if (emailSent !== EMAIL_SENT && row[12] == "Mail Send"  && row[6] != "") { // Prevents sending duplicates
      var subject = row[11];
      MailApp.sendEmail(emailAddress, subject, message);
      sheetname.getRange(startRow + i, 15).setValue(EMAIL_SENT);
      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
    }
  }
}

任何帮助将不胜感激

标签: google-apps-scriptgoogle-sheets

解决方案


首先原谅英语

为此,您可以使用下面的代码并忽略“参考”选项卡

不要忘记创建触发器,以便在发送表单后触发它。

function Send_email() { 

  var INITIALline = 2; 
  var columnSEND = 11;  
  var STATUScolumn = 12;
  var textCONDITION = "Submit";
  var textSENT = "Sent"
    
  var tab = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data"); 
  var interval = tab.getRange(INITIALline,1,tab.getLastRow()-INITIALline+1,STATUScolumn);
  var dice = interval.getValues();
  var yousent = false;
  var email,subject,message;
  
  for (var i=0; i<dice.length; ++i) {
    if((dice[i][columnSEND-1]==textCONDITION) && (dice[i][STATUScolumn-1]!=textSENT)){
    
      var email    = dice[i][6]
    
      subject = dice[i][7]+" | Your CASE ID IS | "+dice[i][0];
            
      var message = "<font size='3' face='Comfortaa'>Dear "+dice[i][3]+",<br/><br/>"+
      
                     "Thanks for connecting with us. This is your case id "+dice[i][0]+"..<br/><br/>"+
                     
                     "<i>Thanks & Regards</i><br/>"+
                     "<b>Team</b>";
      
      MailApp.sendEmail(email, subject, message,{ htmlBody: message});
      tab.getRange(INITIALline+i,STATUScolumn).setValue(textSENT);
      yousent = true;
      SpreadsheetApp.flush();
    }
  }
 }


推荐阅读