2016-04-22 4 views
0

Ich versuche, eine Tabellenkalkulation Automatisierung Erstellen von Google-Skript, die E-Mail an eine bestimmte Person sendet Werte von Spreadsheet erstellen. Ich habe eine Spalte, in der erwähnt wird, wann Datum und Uhrzeit des Zeitplans genannt werden. Ich wollte E-Mail, per Termin senden, hat jemand eine Ahnung, wie ich erwähnt kann in meiner FunktionVersucht, E-Mail nach Datum und Uhrzeit zu senden erwähnt

+----------------------+---------------+-------------+-------------+ 
+  Schedule  + Email  + Subject + Message + 
+----------------------+---------------+-------------+-------------+ 
+ 04/22/2015 18:00:00 + [email protected] +  Hi  +  Hi  + 
+----------------------+---------------+-------------+-------------+ 
+ 04/25/2015 14:00:00 + [email protected] +  Hi  +  Hi  + 
+----------------------+---------------+-------------+-------------+ 

function sendEmails() { 
for (k = programFirstRow; k < totalProgramRows + 1; k++) 
    { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var startRow = 2; // First row of data to process 
    var numRows = 2; // Number of rows to process 
    // Fetch the range of cells A2:B3 
    var sendDate = SendSheet.getRange("A"+k).getValues(); 
    var emailAddress = SendSheet.getRange("B"+k).getValues(); 
    var Subject = SendSheet.getRange("C"+k).getValues(); 
    var message = SendSheet.getRange("D"+k).getValues(); 
    // Fetch values for each row in the Range. 
    MailApp.sendEmail(emailAddress, subject, message); 
    } 
} 
+0

Ein paar Anmerkungen zu Ihrem Code, der nichts mit dieser Frage zu tun hat: Vermeiden Sie es, den Tabellenkalkulationendienst innerhalb einer Schleife aufzurufen. Dies ist ein sehr langsamer Prozess und kann Ihr Skript leicht beeinträchtigen. In ähnlicher Weise können Sie den gesamten Wertebereich des Blattes mit 'mySheet.getDataRange(). GetValues ​​()' außerhalb einer Schleife abrufen und dann bearbeiten, um die benötigten Daten abzurufen. Weitere Informationen: https://developers.google.com/apps-script/best_practices –

Antwort

0

Sie können programmatisch Setup installierbar Trigger: Reference

Insbesondere können Sie programmatisch eine zeitbasierte Trigger installieren : Reference

Beispiel:

ScriptApp.newTrigger('myEmailFunction') 
.timeBased() 
.atDate(myDateObject) 
.create(); 

Sie können durch Ihre sh iterieren Erstellen Sie zeitbasierte Trigger für jede E-Mail. Diese haben jedoch nur eine Zeitgranularität von 15 Minuten. Es wird also bis zu 15 vor oder 15 Minuten nach der angegebenen Auslösezeit ausgeführt.

Ich werde kein vollständiges Beispiel für Sie schreiben, da es ein Teil des Lernprozesses ist. Die verknüpfte Dokumentation ist mehr als genug, um Sie zu starten.

+0

Sie haben es nicht verstanden Ich bin Datum und Uhrzeit ist bereits in meiner Tabelle angegeben. Das einzige Ding, um die Zeit auf dem Datum zu ermitteln, das es benötigt wird, um zu senden. Ich möchte keinen zeitbasierten Trigger erstellen. –

+0

@ Love0915 Möchten Sie die E-Mails nicht automatisch zu den in Ihrer Tabelle angegebenen Zeiten senden? –

+0

Ja. Das ist der Wunsch, den ich versuche und wollte. –