Google应用脚本 - 根据单元格值自动生成的邮件

时间:2017-05-17 09:57:21

标签: google-apps-script

我正在尝试根据我的Gdoc中的文本更改发送自动生成的邮件, 如果单元格有价值,我的要求是发送邮件" SEND ALERT MAIL" 否则如果单元格有价值"不需要警报邮件"只需在状态栏(Gdoc)中添加一些文字。

唯一的条件是仅在邮件中发送相应的行数据,但脚本无论条件如何都发送13封邮件。

请帮忙!

代码..

function sendEmail() 
{
  var sheet = SpreadsheetApp.getActiveSheet();
  var Totalcol=sheet.getLastColumn()-4;
  var StartRow =2;
  var LastCol = sheet.getLastColumn()-1;
  var LastRow = sheet.getLastRow();
  var Indic = sheet.getRange(StartRow,LastCol).getDisplayValue();

  for (var i = 0; i <= LastRow; i++) 
   {
     var row = LastRow[i];
     var dataRange = sheet.getRange(StartRow, 1, 1, Totalcol);
     var Offer = dataRange.getValues(); 
     if(Indic=="SEND ALERT MAIL")
     {
       MailApp.sendEmail("xyz@gmail.com", "Offer Alert", Offer);
     }
     else if(Indic=="NO ALERT MAILS NEEDED")
     {
       var cell = sheet.getRange("H2");
       cell.setValue("Alert date not reached !");
     }
   }
}

1 个答案:

答案 0 :(得分:0)

我修改了我的工作表和代码以提高可读性, while循环不按预期工作。

我的逻辑非常简单,只需将Msg1,Msg2值邮寄到第1列中的邮件地址IF“Indicator Msg”列的值为“SEND ALERT MAIL”并填写“Status”列中的一些文本IF“Indicator Msg”列值“不要”。

Gdoc screenshot

function sendEmails2() 
{
  var sheet = SpreadsheetApp.getActiveSheet();
  var VLastCol = sheet.getLastColumn();
  var startRow = 2;  // First row of data to process
  var LastRow = sheet.getLastRow();
  var LastCol = sheet.getLastColumn()-1;
  var dataRange = sheet.getRange(startRow, 1, LastRow, LastCol)
  var data = dataRange.getValues();
  var Indic = sheet.getRange(startRow,LastCol).getDisplayValue();

  //for (var i = 0; i <= LastRow; ++i)
  do
  { 
    //var row = data[i];
    startRow=startRow+1;
    var emailAddress = sheet.getRange(startRow,1).getDisplayValue(); // First column
    var message = sheet.getRange(startRow,2).getDisplayValue();      // Second column
    var message1 = sheet.getRange(startRow,3).getDisplayValue();     // Third column

    if(Indic=="SEND ALERT MAIL")
    {
    var subject = "Sending emails from a Spreadsheet";
    MailApp.sendEmail(emailAddress, subject, message +' '+ message1);
    }
    //SpreadsheetApp.flush();
    else if(Indic != "SEND ALERT MAIL")
    {
    var cell = sheet.getRange(startRow,VLastCol);
    cell.setValue("Date not reached")
    }
    //var val = sheet.getRange(startRow,LastCol).getDisplayValue();
  }
  while(Indic == null)
}
相关问题