javascript - GmailApp.moveToArchive : Execution succeeded, 但没有任何移动

标签 javascript google-apps-script gmail

更新:嗯,似乎发生了一些事情。现在,我的收件箱中的邮件数量已从 36,000 多条增加到 353,000 多条。啊?这里到底发生了什么。

<小时/>

我从未存档过 Gmail 收件箱,因此其中有 36,000 多封邮件。我想存档 60 天以上的所有邮件,但我无法手动执行此操作。

经过一番谷歌搜索后,我发现了一个可以做到这一点的谷歌脚本,如下所示。但是, GmailApp.moveThreadsT​​oArchive(threads); 显然一次只能在最多 100 个线程上调用,因此我尝试将其放入一个 while 循环中,在 100 个线程上多次调用它一次:

/**
* Archives Emails older than a given time interval
* src:  http://www.quora.com/Gmail/Is-there-a-way-to-auto-archive-emails-after-a-certain-number-of-days
* 
* example:
*   RunAutoArchive('2w')
*   RunAutoArchive('1m')
*   RunAutoArchive('5y')
*/

function RunAutoArchive(){

  // archive messages older than:
  var interval='60d';

  // number of threads
  var threadCount = 0;
  var start = 0; 
  var end = 100;

  // find messages older than a certain time
  if(interval != ""){
    var searchQuery = 'in:Inbox older_than:'+interval;
    var threads = GmailApp.search(searchQuery);    
    threadCount = threads.length;

    // if there are any threads
    if(threadCount > 0){
      while(start <= threadCount){

        // move threads to archive
        GmailApp.moveThreadsToArchive(threads.slice(start,end));

        // increment count
        start += 100;
        end += 100;

      }
    }
  }

  // refresh threads
  GmailApp.refreshThreads(threads);

  return threadCount;
}

但是,它调试并成功运行(很长的执行记录以[14-01-16 21:40:59:199 PST]执行成功[284.472秒总运行时间]结束),但我的收件箱保持不变 - 仍有 36,000 多条未归档的邮件。

有什么建议可能是错误的吗?

最佳答案

要在 x 天后将收件箱 gmail 线程移入存档,您可以使用以下命令并每分钟设置一个触发器来存档大量传入电子邮件,只需将 scriptproperties 键“CNT”设置为 0 并运行以下命令脚本

function gmailAutoarchive1() {

  var delayDays = 2; // will only impact emails more than 48h old
  var maxDate = new Date();
  maxDate.setDate(maxDate.getDate()-delayDays); // what was the date at that time?
  Logger.log("MAXDATE",maxDate);

  // Get all the threads labelled 'autoarchive'
  var label = GmailApp.getUserLabelByName("AUTOARCHIVE");

  var scriptProperties = PropertiesService.getScriptProperties();
  var cnt=scriptProperties.getProperty("CNT");
  var cnt_val=parseInt(cnt)


//  var threads = label.getThreads(cnt_val,499);
   var threads = GmailApp.getInboxThreads(cnt_val,499);

  // we archive all the threads if they're unread AND older than the limit we set in delayDays
  for (var i = 0; i < threads.length; i++) {

      Logger.log("del",threads[i].getLastMessageDate());     

    if (threads[i].getLastMessageDate()<maxDate)
    {  
      threads[i].moveToArchive();
     // threads[i].moveToTrash();
    }
  }

  scriptProperties.setProperty("CNT", cnt_val+499)

}

关于javascript - GmailApp.moveToArchive : Execution succeeded, 但没有任何移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21178760/

相关文章:

javascript - 如何以编程方式更改 amStockChart 的缩放级别?

javascript - 有没有办法将 URLFetchApp.fetch 从 gs 端传递到 javascript 端

google-apps-script - 从 Google Apps 脚本运行保存的 bigquery 查询?

javascript - 使用 GDrive 脚本仅显示一次对话框(实现脏位系统)

css - 我如何使用位置 :absolute in gmail

gmail - 仅在收到新邮件时接收Gmail推送通知

javascript - 如何从 Apollo 客户端的 useQuery 获取响应头

javascript - 如何使用 .each() 的 jQuery 的更多 div?

javascript - 在循环变量中重用具有给定名称的 VAR?

gmail - phpMailer gmail 垃圾邮件