Google Script GmailApp - 真的很困惑

时间:2013-10-31 13:12:24

标签: javascript google-apps-script gmail

我在网上发现了一个脚本,允许我自动删除某个标签的电子邮件,这些电子邮件的日期早于特定日期。我一直在尝试修改此脚本以便为我工作。我能够运行一次,但得到一个超时错误,说我的脚本向服务器发出了太多的请求。每次在我尝试运行脚本之后,我都会收到服务器错误。在使用执行转录本调查此错误时,编辑说它我没有授权对我的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;
        }
      } 
    } 
  }
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我通过包含对另一个谷歌脚本服务的调用来实现它。这带回了授权页面,从那以后一直运作良好。

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

Session.getActiveUser().getEmail();