私はこのスクリプトに長い間取り組んできました.Google Appスクリプトであり、提供された電子メールに電子メールアラートを自動的に送信し、1分ごとにスクリプトを実行しています.
したがって、セルの合計が 201 より大きい場合、ユーザーに電子メールが送信されます。しかし問題は、スクリプトが実行されるたびに電子メールを送信することです。
電子メールが既に一度送信されている場合、セル値が再び 201 未満になり、201 より大きい値に戻らない限り、再度送信されないというコーディングの助けが必要です。テキスト「送信済み」または「送信済み」を含むセルを作成することを考えていました。 "送信されません"
「未送信」と表示されている場合、合計が 201 より大きい場合はメール コードを実行します 「送信済み」と表示されていて合計が 201 より大きい場合は、メール コードを実行しません。
私はすべてが明確ではないことを知っていますが、これについて助けを得るのは非常に困難でした. これがコードです。
これが機能する場合、多くの人がこのスクリプトを使用できると確信しています。
function sendEmail(email_address, email_subject, email_message) {
MailApp.sendEmail(email_address, email_subject, email_message);
}
function test_sendEmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.setActiveCell('A2');
var criterion_cutoff = 201;
var i = 0;
var addr;
var subj;
var msg;
do {
addr = cell.offset(i,0).getValue();
subj = cell.offset(i,1).getValue();
msg = cell.offset(i,2).getValue();
criterion = cell.offset(i,3).getValue();
if(criterion == criterion_cutoff) {
sendEmail(addr,subj,msg);
// Browser.msgBox('Sending email to: ' + addr);
}
i++;
} while( cell.offset(i, 0).getValue().length > 0 )
Browser.msgBox('Done!');
}
だから私は if else 条件を do while の外に追加することを考えていました
if(SpreadsheetApp.getActiveSheet().getRange(21,6).getValue() != 'Not Sent') {
do {
//same stuff as above
} while(condition)
}
else
//don't know wht else to do in else condtion so just using googleclock
SpreadsheetApp.getActiveSheet().getRange(2,7).setValue('=GoogleClock()')