删除 Gmail 线程是否足够具体以仅删除特定电子邮件中的消息?

Is deleting Gmail thread specific enough to delete only messages from a specific email?

我在 Google 脚本中创建了以下算法,该脚本从所有文件夹中删除来自特定地址的所有邮件:

function deleteForever() {
  var labelName
  labelName="some_mail_address"
  var threads = GmailApp.search("in: all from:" + labelName);
  for (var i = 0; i < threads.length; i++) {
    Gmail.Users.Messages.remove("me", threads[i].getId());
  }
}

我的 gmail 帐户可以安全使用吗? (使用触发器使其每分钟运行一次)

特别是,我想知道一个线程是否可以包含多封邮件,以及这是否会导致删除不是来自不需要的发件人的邮件。

此外,我在某些网页上看到“in: anywhere”。这与“in:all”有区别吗?

简答:否

它不“安全”,因为:

  1. 线程 ID 与第一条线程消息的 ID 相同,但第一条消息可能来自其他发件人。

  2. 该消息将被永久删除

  3. 运行每分钟运行一个脚本可能会消耗每日配额,因此您可能首先会收到错误消息,而最近由于错误太多,触发器可能会被禁用。

in:anywherein:all 不同。第一个将 return 个线程标记为垃圾邮件和垃圾,但第二个不会。


  1. 而不是使用线程 ID,遍历线程消息以检查发件人,如果匹配则“删除”消息
  2. 不要使用“删除”,而是使用“垃圾”
  3. 如果您使用“trash”而不是“remove”,请不要使用“in:anywhere”,否则同一封邮件将被反复处理,直到它被永久删除。
  4. 不要使用每分钟 运行 一次的触发器,而是每十分钟 运行 一次,或者如果您打算使用其他时间驱动的触发器,请使用较低的频率。

相关