如何通过收件人地址垃圾邮件过滤Gmail邮件?

时间:2014-07-02 20:47:16

标签: filter google-apps-script gmail spam

我使用点功能(m.yemail@gmail.com而不是myemail@gmail.com)为可疑网站发送电子邮件,以便我可以轻松地从我的地址中发现垃圾邮件。

我做了这个功能并将其设置为每30分钟触发一次以自动过滤这些功能。

function moveSpamByAddress(){
  var addresses = ["m.yemail@gmail.com"]
  var threads = GmailApp.getInboxThreads();
  for (var i = 0; i < threads.length; i++){
    var messages = threads[i].getMessages();
    for (var ii = 0; ii<messages.length; ii++){
      for (var iii = 0; iii<addresses.length; iii++){
        if (messages[ii].getTo().indexOf(addresses[iii]) > -1){
          threads[i].moveToSpam()
        }
      }
    }
  }
}

这很有效,但我注意到这比我预期的要慢(但我的期望可能是不合理的)因为我的收件箱只包含50条消息,而我目前只过滤一个地址。有没有办法提高执行速度?

对于经常运行脚本还有任何处罚吗?我看到我可以选择每分钟触发一个脚本,这会增加在我看到之前过滤消息的可能性,但是它也会无意义地运行脚本多次。

1 个答案:

答案 0 :(得分:2)

您可以使用原生gmail过滤器和应用脚本执行此操作 脚本时间配额从1到6小时不等,具体取决于帐户类型 要提高性能,首先检查getInboxUnreadCount,如果为零,则立即返回 如果使用1分钟触发器,请确保使用锁定以避免一个计时器启动而另一个计时器运行。如果锁在使用中,只需返回。

首先,制作一个gmail过滤器,以便&#34;到&#34;匹配您的特殊地址,应用特殊标签,如&#34; mySpam&#34;
其次,使用上面的建议创建一个应用程序脚本,再加上你的代码不再需要搜索这么多,现在你只需要找到带有该标签的电子邮件(单个api调用)和.moveToSpam

如果脚本经常运行,标签中的任何时候都不应该有这么多。