我一直在努力這個腳本很長一段時間,它是谷歌應用程序腳本,它會自動發送電子郵件警報提供的電子郵件,我腳本觸發每隔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(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()')
從閱讀您的代碼,您似乎檢查整列的單元格,而不是一個。如果有人遇到過,電子郵件將被髮送,那麼您不需要再檢查其他單元格(在列中)了? – 2012-07-10 13:58:31
@HenriqueAbreu是和否,那裏有3 X 3列,第一列有電子郵件,第二個有主題,第三個有味精。所以你可以把它想成3種不同的檢查條件應用程序,我不必全部使用3.我只檢查第2行..我的代碼只是工作問題是我不想繼續發送電子郵件,如果有已經發送過一次,並且一次只有當信元仍然大於201 ..如果它回落到低於201,它應該再次發送。 – Mowgli 2012-07-10 14:03:45
@HenriqueAbreu我自己幾乎找到了解決方案,我會在這裏發佈它,也有人需要使用它。 – Mowgli 2012-07-10 14:04:25