2016-08-19 17 views
0

このコードは、実行ボタンをクリックしたときにのみ機能します。私は期待しGoogleスプレッドシートから自動メールを送信しますか?

// This constant is written in column C for rows for which an email 
// has been sent successfully. 
var EMAIL_SENT = "EMAIL_SENT"; 

function sendEmails2() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var startRow = 2; // First row of data to process 
    var numRows = sheet.getLastRow()-1; // Number of rows to process 
    var dataRange = sheet.getRange(startRow, 2, numRows, sheet.getLastColumn()); 
    // 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[0]; // First column 
    var message = row[1];  // Second column 
    var emailSent = row[2];  // Third column 
    if (emailSent != EMAIL_SENT) { // Prevents sending duplicates 
     var subject = "Sending emails from a Spreadsheet"; 
     MailApp.sendEmail(emailAddress, subject, message); 
     sheet.getRange(startRow + i, 4).setValue(EMAIL_SENT); 
     // Make sure the cell is updated right away in case the script is interrupted 
     SpreadsheetApp.flush(); 
    } 
    } 
} 

はそれを行うことができる場合は、[実行]ボタンをクリックしなくても自動的たびに新しいメッセージを電子メールを送信することができるようにする方法ですか?

+1

は、[シンプルトリガ](https://developers.google.com/apps-script/guides/triggers/)または[時間駆動のトリガー](HTTPSを見てみましょう。 google.com/apps-script/guides/triggers/installable#time-driven_triggers)は、[手動で](https://developers.google.com/apps-script/guides/triggers/installable#managing_triggers_manually)または[プログラムで](https://developers.google.com/apps-script/guides/triggers/installable#managing_triggers_programmatically) – ocordova

+0

[This(http://stackoverflow.com/questions/34656837/set-a-trigger-to-月の最後の時間/ 34684370#34684370)もあなたを助けます – iJay

答えて

0

@cordovaが正しい場合は、実行ボタンをクリックすることなく、新しいメッセージを自動的に送信できます。

Script serviceを使用してプログラムでトリガーできます。次の例は、(あなたのスクリプトがに設定された時間帯に)午前9時毎週月曜日を発射6時間ごとに発射-1のトリガーと1〜2時間駆動を作成する方法を示しTriggerBuilder

返しScriptApp.newTrigger(functionName)を呼び出し。 //開発者:

function createTimeDrivenTriggers() { 
    // Trigger every 6 hours. 
    ScriptApp.newTrigger('myFunction') 
     .timeBased() 
     .everyHours(6) 
     .create(); 

    // Trigger every Monday at 09:00. 
    ScriptApp.newTrigger('myFunction') 
     .timeBased() 
     .onWeekDay(ScriptApp.WeekDay.MONDAY) 
     .atHour(9) 
     .create(); 
} 
関連する問題