导语:像许多人一样,我以前会把我的每一封邮件都进行分档归类,因为我觉得这些邮件对我来说都有用,所以归结起来,我当时之所以不及时删除邮件的原因主要出于“囤积心理”,比如“等我有时间再看”,“等我需要的时候再看”,“这个对我有帮助,日后

360截图1649122491103123.jpg

像许多人一样,我以前会把我的每一封邮件都进行分档归类,因为我觉得这些邮件对我来说都有用,所以归结起来,我当时之所以不及时删除邮件的原因主要出于“囤积心理”,比如“等我有时间再看”,“等我需要的时候再看”,“这个对我有帮助,日后用得着”……如此下来,邮箱被挤爆不说,还会阻碍新的邮件进来。

所以我痛定思痛,对我的邮件进行了一次清理,清理的方法是这样的:我设置了一个Google脚本,每天都会运行我的所有电子邮件,如果该邮件超过90天以上,并且没有添加“保留”标签,则这些邮件就会被自动删除。这个办法的效果很明显,让我的邮件压力小了很多。

脚本制作过程

起初,我只是想寻找一种方法来对邮件进行一个简单的过滤,虽然网上有很多关于这方面的介绍,但事实证明,这些过滤办法仅对安装过滤器之后的新接收的 Gmail进行过滤,对以前的邮件则不会进行任何的过滤。不过,通过对这些方法的学习,我倒是学会了如何搜索查询术语,这样我就可以通过进一步的开发来查找以前的消息或线程,该术语就是older_than:,这样在Gmail中,利用older_than:90d就可以准确搜索到我想要过滤的90天以上的邮件。

如果你曾经编写过任何类似Javascript或C ++的语言,则可以利用这些语言编写一个简单易用的Google脚本。

点此查看我使用的API,我可以在大约20分钟内利用参考的API拼凑出以下脚本:

function DeleteOldEmail () {
var threads;
var thread;
threads = GmailApp.search("older_than:90d");
for(var i = 0; i < threads.length; i++)
{
var thread = threads[i];
GmailApp.moveThreadToTrash(thread);
}
}

很明显,这个粗制滥造的脚本还有很多需要改进的地方,比如它除了能90天以上的邮件进行删除外,就再没有任何其他选项了,比如开头我说的把标有“保留”标签的邮件留下来。,留下了很多的希望。没有任何情况下,像“保存”或“保持”这样的标签可能会发挥作用,它只是拖走并删除所有旧的东西。但是在向你介绍我的改进之前,我会先对此时的脚本功能在实际操作中的情况进行展示。点此https://script.google.com/,你可以进行详细的了解。

2.png

看见上图中的代码了吗,复制并保存它们。此时,它会要求你对此操作进行命名,于是我就将它命名为” DeleteOldEmail”,不过你可以随意命名它。这样,在你的Google安全性“批准应用(Approve Apps)”列表中就会显示出该文件。

3.png

我第一次运行该脚本时,我会把具有删除功能的行标记出来,并添加在“记录器(Logger)”行,所以我在运行时,就很清楚地知道什么邮件将会被删除。

function DeleteOldEmail () {
var threads;
var thread;
threads = GmailApp.search("older_than:90d");
for(var i = 0; i < threads.length; i++)
{
      var thread = threads[i];
      Logger.log(thread.getFirstMessageSubject())
//GmailApp.moveThreadToTrash(thread);
}
}

然后运行它,第一次运行它,它会请求权限:

5.png

如果不喜欢这样的方式,可以点此进行详细设置,以撤销请求权限这一步。

6.png

如果你去看日志,你会看到类似View->Logs这样的内容:

7.png

最后一步是设置它,以便它自动运行,这是整个脚本关键之处。为此,我会进入 Edit->Current Project’s Triggers项对触发器进行设置。下面就是我添加一个新的触发器的界面。

8.png

可以看出我选择的过滤周期为每12小时进行一次,但你可以进行其它设置,比如它每24小时过滤一次,每周一次……

最后,我要说的是这个脚本有很多自定义的空间,如果你愿意,你可以完全自定义任何你想要的搜索字符串。为了方便你的操作,我特意创建了一个Github代码库,以公布我最新所进行的脚本改进的代码,其中就有关于“保留”标签脚本的编写。

源链接

Hacking more

...