如果你和我一样,每天收到大约 3500 封邮件。每次收取邮件时,你都必须浏览所有邮件,寻找你感兴趣的特定邮件。
多亏了 Procmail,这不再是问题了。
Procmail 的工作方式如下:Procmail 会在每封邮件下载时对其进行检查,并根据你指定的特定规则执行一系列任务。
例如,假设我每天从某个邮件列表(在本例中,我使用 linux-foo 列表)收到大约 200 封邮件。我宁愿将这些邮件自动过滤到一个名为 “foo-list” 的文件夹中,而不是让所有这些邮件直接进入我的主收件箱。
第一步是取一封来自该邮件列表的示例邮件,并检查邮件头。
我开始注意到一个模式。来自该邮件列表的每封邮件都有一行写着:
Sender: owner-linux-foo@bar.foogers.com
现在我可以告诉 procmail,将包含此行的每封邮件放入某个文件夹中。
我告诉 procmail 的方式是通过 “.procmailrc” 文件。
我将使用我最喜欢的文本编辑器在我的主目录中创建一个名为 “.procmailrc” 的文本文件。
该文件看起来像这样
LOGFILE=$HOME/.pmlog MAILDIR=$HOME/mail VERBOSE # linux-foo list :0 Hw * ^.*[Ss]ender: owner-linux-foo@bar.foogers.edu foo-list # if it got to this point, put it in my new mail folder :0 Hw newmail
检查 “[Ss]ender” 行。你会注意到,该行是来自该邮件列表的所有邮件共有的一个特征。
该部分告诉 procmail,当它看到带有如上所示标头的邮件时,将其放入 “foo-list” 文件夹。
下一部分表示,如果邮件与上述任何内容都不匹配,则将其放入 newmail。
现在,假设我希望每当收到来自我的好朋友 EJ 的邮件时,都将其放入一个名为 “EJ” 的文件夹中。
我只需在我的 procmailrc 文件中创建一个新部分。见下文
LOGFILE=$HOME/.pmlog MAILDIR=$HOME/mail VERBOSE # linux-foo list :0 Hw * ^.*[Ss]ender: owner-linux-foo@bar.foogers.edu foo-list # Message from E.J.! :0 Hw * ^.*[Ff]rom: ej@mypal.com ej # if it got to this point, put it in my new mail folder :0 Hw newmail
请注意 EJ 的新部分。当收到 “From” 字段中包含他的电子邮件地址的邮件时,它将自动将其放入我的 “ej” 文件夹。
现在,假设有个讨厌鬼一直给我发邮件。我不想收到他的邮件,但他很执着。再次 - Procmail 来解救。
因此,假设我不想再看到任何来自比尔·盖茨的邮件。我可以设置一个规则来删除来自他的任何邮件。看看我的新 procmailrc
LOGFILE=$HOME/.pmlog MAILDIR=$HOME/mail VERBOSE # Is it coming from Bill Gates? If yes, DELETE IT!!! :0 Hw * ^.*[Ff]rom: bgates@microsoft.com /dev/null # linux-foo list :0 Hw * ^.*[Ss]ender: owner-linux-foo@bar.foogers.edu foo-list # Message from EJ! :0 Hw * ^.*[Ff]rom: ej@mypal.com ej # if it got to this point, put it in my new mail folder :0 Hw newmail
现在我有一个相当不错的 procmailrc 文件。让我们检查一下 procmail 会如何处理每封收到的邮件。
首先,它检查邮件是否来自 “bgates@microsoft.com”。如果是,则删除它,就完成了。
如果邮件通过了第一个检查,它将查看邮件头中是否包含 “owner-linux-foo@bar.foogers.edu”。如果包含,它将把邮件放入 “foo-list” 文件夹,就完成了。
如果邮件仍然通过了那次检查,那么它会检查邮件是否来自 EJ。如果是,则将其放入 “ej” 文件夹。
现在,如果邮件通过了所有这些测试,那么它应该只将其放入我的 newmail 文件夹。
一旦你设置好这些文件夹,并且 procmail 正在正确地过滤邮件,你就可以进入 TkRat,选择 “管理 - 新建/编辑文件夹”,并为每个文件名创建文件夹。它们将位于 /home/username/mail/foldername 下。