努力在日期倒计时中提取带有提醒消息的电子邮件

时间:2018-11-27 22:17:58

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

我已经反复尝试使这个“简单”脚本起作用。我想扫描一列日期,如果预设的“天数”是今天,则它将从同一行中提取电子邮件,并附上提醒消息,说明任务已到期。无论出于何种原因,当我这样做时,我都无法收到多封电子邮件发送给不同的所有者,并且我的循环会不断堆积同一天到期的任务。我可以SHARE SHEET HERE。任何帮助表示赞赏!

function checkReminder() {
// get the spreadsheet object
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// set the first sheet as active
SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[0]);
// fetch this sheet
var sheet = spreadsheet.getActiveSheet();

// figure out what the last row is
var lastRow = sheet.getLastRow();

// the rows are indexed starting at 1, and the first row
// is the headers, so start with row 2
var startRow = 2;

// grab column 5 (the 'days left' column) 
var range = sheet.getRange(2,5,lastRow-startRow+1,1 );
var numRows = range.getNumRows();
var days_left_values = range.getValues();

// Now, grab the reminder name column
range = sheet.getRange(2, 1, lastRow-startRow+1, 1);
var reminder_info_values = range.getValues();

//Range A2:End of rows and columns
data = sheet.getRange(2, 6, lastRow-startRow+1,1);

//Now, grab the emails
var email_values = data.getValues();
//Logger.log(email_values)
//Logger.log(reminder_info_values)
//=======================Above this line works 
fine====================================

for (k in email_values){
var row = email_values[k];}
//var emailAddress =row[5]

var warning_count = 0;
var msg = "";

// Loop over the days left values
for (var i = 0; i <= numRows - 1; i++) {
var days_left = days_left_values[i][0];
if(days_left == 7) {
  // if it's exactly 7, do something with the data.
  var reminder_name = reminder_info_values[i][0];
  var emailAddress = row[6]
  msg = msg + "Reminder: "+reminder_name+" is due in "+days_left+"  
  days.\n";

} 
}


  warning_count++;



if(warning_count) {
//MailApp.sendEmail(emailAddress, 
   //"Reminder Spreadsheet Message", msg);
Logger.log(emailAddress);
Logger.log(msg);
}

}

0 个答案:

没有答案