我正在尝试创建一个脚本,该脚本将每天计算带有特定标签的电子邮件数量。我目前已设置以下代码;
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调用的变量“邮件”)以及在搜索调用中使用变量而造成的。我该怎么做?还是其他原因导致了问题?
答案 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]);
}