Google 用于计算昨天 sent/received 具有特定标签的电子邮件数量的 Apps 脚本,然后将 # daily 保存到电子表格

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

我看了下面的问题,它让我完成了一半。我可以 运行 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         

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

我想出了这个脚本,希望对您有所帮助。

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 变量设置为您想要的日期和 运行 脚本。完成后,检查日志。

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