スタック オーバーフローの皆さん、こんにちは。
スプレッドシートから見積もりを取得し、電子メールでユーザーに送信する小さなスクリプトを作成しました。アイデアは、スクリプトが 1 日に 1 回実行され、スプレッドシートの次の見積もりを引き出し、それを電子メール アドレスに送信するというものです。
スクリプトは次のようになります。
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 1000; // Number of rows to process
var dataRange = sheet.getRange(startRow, 2, numRows, 3);
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
if(row[2]=="yes") {
continue;
}
var emailAddress = "myemail@email.com"; // email to send to
var message = '"'+row[0]+'"'+"\n\n"+"- "+row[1]; // Second column
startRow = parseInt(startRow)+parseInt(i);
var subject = "";
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow,4).setValue("yes");
SpreadsheetApp.flush();
break;
}
}
手動で実行すると、スクリプトは正常に動作します。
次に、次のようなスクリプト トリガーを追加しました。
sendEmail | タイムドリブン | デイタイマー | 午後7時から午後8時
残念ながら、関数は実行されておらず、見積もりは送信されていません。
また、Time-Driven トリガーを理解するのに少し問題があります。「午後7時から午後8時」とはどういう意味ですか? この 2 時間の間にランダムな時間に 1 回ですか?
このスクリプトは、Google ドキュメントにログインする必要がない場合にのみ意味があります。多分私はここで何かを完全に誤解しています... Google ドキュメントにログインしている場合にのみスクリプトが機能しますか? (しかし、私がそうであったとしても、今のところ、スクリプトはタイムドリブン トリガーでは実行されません)。
これについてのあなたの考えにとても感謝しています。モリッツ