Google Apps脚本可计算昨天发送/接收的电子邮件数量,具有特定标签,然后将#daily保存到电子表格中

时间:2017-01-30 05:33:21

标签: google-apps-script google-sheets gmail

我看了下面的问题,它让我走了一半。我可以运行Suyash Gandhi的代码,它将统计具有特定标签的电子邮件总数。我正在尝试计算(A)发送的电子邮件数量和(B)按标签收到的特定日期的电子邮件数量。

Google Apps Script to count number of emails received yesterday, that has certain label, then save # daily to spreadsheet

例如,

Label    Date       #Received    #Sent
Test     1/1/2017   2            4
Test     1/2/2017   2            4
Test     1/3/2017   2            4
Test     1/4/2017   2            0 
Test     1/10/2017  2            8 

Vs what the code currently does:
Label    Date       Count
Test     1/10/2017   30         

我想在午夜时运行脚本来计算前几天的电子邮件。

1 个答案:

答案 0 :(得分:1)

我已经提出了这个脚本,希望它有所帮助。

var labelName = "purgeMailTest";
var theDate ="2017-01-28";

function myFunction() 
{
  var dayOfMonth = theDate.split("-");
  var nextDayOfMonth = parseInt(dayOfMonth[2])+1;
  var nextDate = dayOfMonth[0]+"-"+dayOfMonth[1]+"-"+nextDayOfMonth;
  var sentCount = 0, receivedCount = 0;

  //Sent count
  var sentSearchQuery = "label:"+labelName+" before:"+nextDate+" after:"+theDate+" is:sent";
  var threads = GmailApp.search(sentSearchQuery, 0, 500);

  for(var i=0; i<threads.length; i++)
  {
    sentCount = sentCount + threads[i].getMessages().length;
  }

  Logger.log(theDate +":"+sentCount+" sent");

  //Received count
  var receivedSearchQuery = "label:"+labelName+" before:"+nextDate+" after:"+theDate+" -is:sent";
  var threads = GmailApp.search(receivedSearchQuery, 0, 500);


  for(var i=0; i<threads.length; i++)
  {
    receivedCount = receivedCount + threads[i].getMessageCount();
  }

  Logger.log(theDate +":"+receivedCount+" received");

}

总结:

我只是使用gmail搜索过滤器来获取特定日期的已发送和已接收电子邮件。

如何使用此脚本?

根据您的环境更改标签名称,并将 theDate 变量设置为您想要的日期并运行脚本。完成后,检查日志。

如果需要进一步的帮助,请告诉我。