這是帶有腳本的谷歌表的鏈接 - https://docs.google.com/spreadsheets/d/1Qw8WefbVkS-AQXi1CcZ0z2CL-P0oNSZYqeT40oVF6go/edit#gid=0
我已將腳本設置為每分鐘觸發一次以測試是否正在發出電子郵件。腳本運行沒有錯誤,執行顯示每分鐘都在運行,但是我沒有自動收到電子郵件。
腳本的原因是在流程需要審核時提醒一方
我希望能夠不斷添加數據並重複發送電子郵件,其中它將向同一方發送有關不同流程的多封電子郵件。該腳本應該能夠每天運行並自動發送電子郵件。我將觸發器更改為每分鐘以檢查我是否會收到電子郵件,但沒有收到。請有人幫忙。
function reminder() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
var data = sh.getDataRange().getValues()
var d = new Date().getTime();
for (var i=1;i<data.length;i++){
if (data[i][4]<=new Date(d+7*24*60*60*1000) && data[i][4]>=new Date(d+5*24*60*60*1000) && data[i][6]!=''){
MailApp.sendEmail({to:data[i][3],
subject: 'reminder ... week',
htmlBody: 'Hello '+data[i][1]+' The process for '+data[i][0]+' is due to review on '+data[i][4]+' Please review the content and contact the process team before its due date if amendments are required'
})
sh.getRange(i+1,7).setValue('sent')
}
else if (data[i][4]<=new Date(d+30*24*60*60*1000) && data[i][4]>=new Date(d+28*24*60*60*1000) && data[i][5]!=''){
MailApp.sendEmail({to:data[i][3],
subject: 'reminer ... month',
htmlBody: 'Hello '+data[i][1]+' The process for '+data[i][0]+' is due to review on '+data[i][4]+' Please review the content and contact the process team before its due date if amendments are required'
})
sh.getRange(i+1,6).setValue('sent')
}
}
}
所有行的列F
和G
都是空的,因此data[i][6]!=''
和data[i][5]!=''
將始終為false
。因此,代碼永遠不會進入if
和else if
阻止,因此不會發送任何電子郵件。
我不確定發送電子郵件的條件應該是什麼,但我猜您想在兩種不同的情況下發送電子郵件:
Date for Next Review
在當前日期之後的 5 到 7 天之間,並且列為G
空。Date for Next Review
在當前日期之後的 28 到 30 天之間,並且列為F
空。如果是這種情況,您應該針對這兩種情況修改最後一個條件,因為您希望在列G
(或F
) 為空時發送電子郵件,而不是在填充時發送。
也就是說,替換這個:
if (data[i][4]<=new Date(d+7*24*60*60*1000) && data[i][4]>=new Date(d+5*24*60*60*1000) && data[i][6]!=''){
有了這個:
if (data[i][4]<=new Date(d+7*24*60*60*1000) && data[i][4]>=new Date(d+5*24*60*60*1000) && data[i][6]==''){
和這個:
else if (data[i][4]<=new Date(d+30*24*60*60*1000) && data[i][4]>=new Date(d+28*24*60*60*1000) && data[i][5]!=''){
有了這個:
else if (data[i][4]<=new Date(d+30*24*60*60*1000) && data[i][4]>=new Date(d+28*24*60*60*1000) && data[i][5]==''){
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句