下一页 上一页 目录

6. 自动将邮件分类到文件夹

如果你和我一样,每天收到大约 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 下。


下一页 上一页 目录