0

我在网上找到了一个脚本,可以让我自动删除某个标签、某个日期之前的电子邮件。我一直在尝试修改这个脚本来为我工作。我能够运行一次,但出现超时错误,说我的脚本向服务器发出了太多请求。之后每次我尝试运行脚本时都会出现服务器错误。在使用编辑器中的执行记录调查此错误后,它说我无权针对我的 gmail 帐户运行脚本。如何重新授权此脚本以便我可以运行它并测试它是否正常工作?

function cleanUpForumEmails() {  
  var delayDays = 30; // Enter # of days before messages are moved to trash   
  var maxDate = new Date(); 
  maxDate.setDate(maxDate.getDate()-delayDays);    
  Logger.log("getting gmail labels");
//  var label = GmailApp.getUserLabelByName("Social Updates");  
  var labelObject = GmailApp.getUserLabelByName("Social Updates");
  Logger.log("got labels now testing for undefined");
  if (labelObject == null) {
    Logger.log("Label is NULL");
  } else {
    var threads = labelObject.getThreads();  
    Logger.log("Label is Set.  Number of Messages in Search: " + threads.length);
    for (var i = 0; i < threads.length; i++) {  
      if (threads[i].getLastMessageDate() < maxDate && threads[i].hasStarredMessages() != true) {  
        if(i < 10) {
          threads[i].moveToTrash();
            Logger.log("Moved Email Thread to Trash!");
          Utilities.sleep(1000);
        } else {
          Logger.log("moved 10 threads now breaking");
          break;
        }
      } 
    } 
  }
}
4

2 回答 2

0

如果您正在执行您的应用程序并且您想要访问的邮件是您的,您只需单击播放按钮,就会出现一个窗口,询问您的许可。完成此步骤后,它将不再征求您的许可。

于 2013-10-31T13:45:30.963 回答
0

我通过调用另一个谷歌脚本服务来让它工作。这带回了授权页面,并且从那时起一直工作完美无缺。

我使用的代码行是这样的:

Session.getActiveUser().getEmail();
于 2013-11-20T14:08:30.320 回答