如何将GmailApp.search与变量一起使用?

时间:2019-05-08 19:41:24

标签: google-apps-script

我正在尝试创建一个脚本,该脚本将每天计算带有特定标签的电子邮件数量。我目前已设置以下代码;

function CountVoicemail()  
{
var Label = GmailApp.getUserLabelByName("X140");
var LabelName = Label.getName();
var date = new Date();
var NextDate = date+1; 
var Mails = GmailApp.search('label:"+LabelName+" after:"+date+" 
before:"+NextDate+"',0, 500);              
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data 
Sheet");
sheet.appendRow([LabelName, date,Mails.length]);
}

现在,我有了将其结果作为新行写到工作表的代码,第一列是标签名称,第二列是日期,第三列是该标签中特定电子邮件的数量代码运行的日期(每天触发一次)。但是,现在代码仅返回电子邮件数量的零值(#不为零)。我认为这是由于我试图计算电子邮件(使用GmailApp.Search调用的变量“邮件”)以及在搜索调用中使用变量而造成的。我该怎么做?还是其他原因导致了问题?

1 个答案:

答案 0 :(得分:0)

我不确定,但也许您是说类似的意思?

function CountVoicemail() {
  var Label = GmailApp.getUserLabelByName("X140");
  var name = Label.getName();
  var start=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate());
  var end=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()+1);
  var Mails = GmailApp.search(Utilities.formatString('label:%s after:%s before: %s',name,start,end));
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data Sheet");
  sheet.appendRow([LabelName, date,Mails.length]);
}

这是重新格式化日期的更改:

function CountVoicemail() {
  var Label = GmailApp.getUserLabelByName("X140");
  var name = Label.getName();
  var start=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate());
  var end=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()+1);
  var Mails = GmailApp.search(Utilities.formatString('label:%s after:%s before: %s',name,Utilities.formatDate(start, Session.getScriptTimeZone(), "yyyy/MM/dd"),Utilities.formatDate(end, Session.getScriptTimeZone(), "yyyy/MM/dd")));
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data Sheet");
  sheet.appendRow([LabelName, date,Mails.length]);
}