31.12.使用 procmail

procmail 是一个强大的应用程序,用于过滤进入的邮件。它允许用户定义“规则”,这些规则可以与传入的邮件相匹配,以执行特定的功能或将邮件改道到其他邮箱或电子邮件地址。procmail 可以通过 port mail/procmail 安装。安装后,它可以直接集成到大多数 MTA 中。更多信息请查阅 MTA 文档。另外,也可以通过在用户的主目录下的 .forward 中添加以下一行来进行集成 procmail:

"|exec /usr/local/bin/procmail || exit 75"

下面的部分显示了一些基本的 procmail 规则,以及对它们的作用的摘要。规则必须插入到 .procmailrc 中,它必须位于用户的主目录中:

这些规则的大部分可以在 procmailex(5) 中找到。

要把所有来自 user@example.com 的邮件转发到外部地址 goodmail@example2.com

:0
* ^From.*user@example.com
! goodmail@example2.com

要转发所有短于 1000 字节的邮件到外部地址 goodmail@example2.com

:0
* < 1000
! goodmail@example2.com

要将所有发送到 alternate@example.com 的邮件发送到一个叫做 alternate 的邮箱:

:0
* ^TOalternate@example.com
alternate

将所有主题为“Spam”(垃圾邮件)的邮件发送至 /dev/null

:0
^Subject:.*Spam
/dev/null

一个有用的配置,可以解析进入的 FreeBSD.org 邮件列表,并将每个列表放在它自己的邮箱中:

:0
* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
{
    LISTNAME=${MATCH}
    :0
    * LISTNAME??^\/[^@]+
    FreeBSD-${MATCH}
}