2017-05-17 3 views
0

Ich versuche, automatisch generierte E-Mail basierend auf Textänderung in meinem Gdoc, Meine Anforderung ist es, Mail senden, wenn die Zelle hat Wert "SEND ALERT MAIL" sonst Wenn Zelle hat den Wert "NO ALERT MAILS NEEDED" nur etwas Text in der Statusspalte (Gdoc) hinzufügen.Google App-Skript - Automatisch generierte E-Mail basierend auf Zelle Wert

nur Condition sendet entsprechende Zeilendaten nur in Mail, aber Skript sendet 13 Mails unabhängig von der Bedingung.

Bitte helfen!

Code ..

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("[email protected]", "Offer Alert", Offer); 
    } 
    else if(Indic=="NO ALERT MAILS NEEDED") 
    { 
     var cell = sheet.getRange("H2"); 
     cell.setValue("Alert date not reached !"); 
    } 
    } 
} 

Antwort

0

Ich habe mein Blatt und Code zur besseren Lesbarkeit geändert, arbeitet while-Schleife nicht wie erwartet.

Meine Logik ist sehr einfach, Mail Msg1, Msg2 Werte mail Adresse in 1. Spalte IF "Indikator Msg" Spalte hat Wert "SEND ALERT MAIL" und füllen Sie einen Text in "Status" Spalte IF "Indikator Msg" Spalte Wert "DO NOTHING".

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) 
} 
Verwandte Themen