【问题标题】:Syntax Error Recuring Emails schedule语法错误重复电子邮件计划
【发布时间】:2017-03-11 03:50:11
【问题描述】:

我正在尝试创建一个根据时间表发送电子邮件的程序。

如果电子邮件设置为每天,它将每天运行。如果每周每周等。

我不断收到“var mDaily =”行的语法错误。我的 && 和 || 太多了吗?该程序能否将电子邮件的正确时间安排在周一至周五以及预定的时间?

谢谢!!!才编码几个月!!!

 function startCustomTrigger()
     {
      ScriptApp.newTrigger("recurringEmails").timeBased().everyMinutes(60).create();
    }



function recurringEmails() {

//http://stackoverflow.com/questions/28565372/time-based-google-script-should-run-between-11am-to-2pm

function recurPostLoadsSchedule() {

 var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getSheetByName("Contacts");
  //var start = dataSheet.getRange("H2").getValue();
  //var end = dataSheet.getRange("H3").getValue();

  var dataRange = dataSheet.getRange("F4:N");
  var info = dataRange.getValues();


 for (var i = 0; i < dataSheet.getLastRow(); i++){



  var date = new Date();  
  var day = date.getDay();
  var hrs = date.getHours();
  var dom = date.getdate();

  if ((day >= 1) && (day <= 5) && (hrs >= 6) && (hrs <= 17 )) {

var mDaily = if ((info[i][9] == "Email Multiple Daily") && (day >= 1) && (day <= 5) && (hrs >= 7) && (hrs <= 8 ) 
|| (hrs >= 10) && (hrs <= 11 ) || (hrs >= 14) && (hrs <= 15)){

askForLoads() //this is actually the email program for the specific 

};

var daily = if ((info[i][9] == "Email Daily") && (day >= 1) && (day <= 5) && (hrs >= 8) && (hrs <= 9)){

askForLoads()

};


var mWeekly = if((info[i][9] == "Email Multiple Weekly") && (day == 1) || (day == 3) || (day == 4) && (hrs >= 9) && (hrs <= 10)){

askForLoads()

};


var weekly = if((info[i][9] == "Email Weekly") && (dom == 1) || (dom == 5) || (dom == 9) || (dom == 13)|| (dom == 17)
|| (dom == 21) || (dom == 25) || (dom == 29) && (hrs >= 8) && (hrs <= 9)){ //1-2 per week

askForLoads()

};


var monthly = if((info[i][9] == "Email Monthly") && (dom == 1) || (dom == 11) || (dom == 21) || (dom == 31) && (hrs >= 10) && (hrs <= 11 )){ //1-3 per month

askForLoads()

};

};

};

};

};

【问题讨论】:

    标签: javascript date google-apps-script


    【解决方案1】:

    你不能在 var 声明中使用 if。

    你有两个选择:

    1) 要么在 if 语句中移动变量声明:

    if ((info[i][9] == "Email Multiple Daily")&& (day >= 1)&& (day <= 5) && (hrs >= 7) && (hrs <= 8)  || (hrs >= 10) && (hrs <= 11 ) || (hrs >= 14) && (hrs <= 15)) { var mDaily = askForLoads(); };
    

    2) 或者您使用简化的处理程序(condition) ? true : false;

    var mDaily = ((info[i][9] == "Email Multiple Daily")&& (day >= 1)&& (day <= 5) && (hrs >= 7) && (hrs <= 8)  || (hrs >= 10) && (hrs <= 11 ) || (hrs >= 14) && (hrs <= 15)) ? askForLoads() : null;
    

    PS:顺便说一句,我认为你的 && 和 ||为了清楚起见,条件需要更多括号。

    【讨论】:

    • 既然你这么说,就根本不需要 var 了。只是把它写下来,我就记住了我正在使用的公式。感谢您的帮助!
    【解决方案2】:
    var mDaily = if ((info[i][9] == "Email Multiple Daily") && (day >= 1) && (day <= 5) && (hrs >= 7) && (hrs <= 8 ) 
    || (hrs >= 10) && (hrs <= 11 ) || (hrs >= 14) && (hrs <= 15)){
    
    askForLoads() //this is actually the email program for the specific 
    
    };
    

    if 语句不返回值,因此将其分配给mDaily 是没有意义的。您的意思是在if 语句中声明var mDaily = askForLoads()

    从上下文来看,mDailydaily 的职责并不清楚。

    【讨论】:

    • 既然你这么说,就根本不需要 var 了。只是把它写下来,我就记住了我正在使用的公式。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2011-05-24
    • 2012-10-06
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多