Как использовать GmailApp.search с переменными? - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь создать скрипт, который будет подсчитывать количество писем с определенной меткой каждый день. У меня установлен следующий код:

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]);
}

Прямо сейчас у меня есть код для записи его результатов на листе в виде новой строки с первым столбцом, являющимся именем метки, вторым столбцом, являющимся датой, а в третьем столбце - количеством сообщений электронной почты в этом ярлыке для конкретного дата запуска кода (будет ежедневный триггер). Тем не менее, прямо сейчас код просто возвращает нулевое значение для количества электронных писем (# не ноль). Я думаю, что это связано с тем, как я пытаюсь посчитать электронные письма (переменная «Mails», которая использует вызов GmailApp.Search) и что я использую переменные внутри моего поискового вызова. Что я могу сделать, чтобы эта работа? Или что-то еще вызывает проблему?

1 Ответ

0 голосов
/ 09 мая 2019

Я не уверен, но, возможно, вы имели в виду нечто подобное?

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]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...