寻找一个从Gmail垃圾箱中永久删除的Google Apps脚本

Dav*_*ell 4 google-apps-script

用户正在接收来自特定发件人的大量不需要的电子邮件。阻止会将电子邮件移至垃圾邮件,而过滤将电子邮件移至垃圾箱。如果选中了这些文件夹,则这两个选项仍会将用户暴露给电子邮件。

我正在寻找的是一个脚本,该脚本将在收到电子邮件或按计划频繁发送时从指定的电子邮件地址中永久删除电子邮件。

我几乎不熟悉Google脚本或js,与代码相关的最佳知识是一些基本的vba。

研究此问题后,我将google应用程序用作潜在的解决方案,因为gmail不提供任何自动方式来永久删除电子邮件。下面是我发现的一些代码,尽管由于我对应用程序脚本的全面了解,我无法做到这一点。

function DeleteEmailByLabel(e) {personsemail@gmail.com}
var bannedLabel = 'BLOCKEDSENDER';
var deleteLabel = GmailApp.getUserLabelByName(bannedLabel);
if ( deleteLabel != null ) {personsemail@gmail.com}
var threads = deleteLabel.getThreads();
for (var i = 0; i < threads.length; i++) {
Gmail.Users.Messages.remove('me', threads[i].getId());
}
} else {
deleteLabel = GmailApp.createLabel(bannedLabel);
}
}
Run Code Online (Sandbox Code Playgroud)

我希望上面的代码能够运行,并从垃圾箱文件夹中的测试帐户中删除电子邮件。但是,我得到了这个错误。这看起来像基本的语法东西,但是我不在这里。

失踪 ; 声明前。(第1行,文件“文件名”)

提前致谢。

Sou*_*ria 5

在您可以在Apps脚本中使用此功能之前,请注意执行以下操作:

  1. 在用户的Gmail帐户中创建一个过滤器,以便为此类电子邮件分配一个特定且唯一的标签(您可以将它们“标记为已读”或“发送给垃圾邮件”;这没关系)
  2. 此功能使用某些高级Gmail API,因此,要求您先在脚本编辑器中启用它们,然后再运行脚本。为此,请转到:

资源>高级Google服务...>向下滚动至Gmail API >将关闭按钮切换为开启

进阶资源

function deleteEmails() {
  var bannedLabel = 'BLOCKEDSENDER' // replace with the label name, as setup in filters
  var deleteLabel = GmailApp.getUserLabelByName(bannedLabel);  
  if ( deleteLabel != null ) {
    var threads = deleteLabel.getThreads();  
    for (var i=0; i<threads.length; i++) {
      Gmail.Users.Threads.remove('me', threads[i].getId());
    }    
  } else {
    // do something
  }
}
Run Code Online (Sandbox Code Playgroud)