31.12.使用 procmail =================== procmail 是一个强大的应用程序,用于过滤进入的邮件。它允许用户定义“规则”,这些规则可以与传入的邮件相匹配,以执行特定的功能或将邮件改道到其他邮箱或电子邮件地址。procmail 可以通过 port `mail/procmail `__ 安装。安装后,它可以直接集成到大多数 MTA 中。更多信息请查阅 MTA 文档。另外,也可以通过在用户的主目录下的 **.forward** 中添加以下一行来进行集成 procmail: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session "|exec /usr/local/bin/procmail || exit 75" 下面的部分显示了一些基本的 procmail 规则,以及对它们的作用的摘要。规则必须插入到 **.procmailrc** 中,它必须位于用户的主目录中: 这些规则的大部分可以在 `procmailex(5) `__ 中找到。 要把所有来自 user@example.com 的邮件转发到外部地址 goodmail@example2.com\ : .. raw:: latex \diilbookstyleinputcell .. code:: shell-session :0 * ^From.*user@example.com ! goodmail@example2.com 要转发所有短于 1000 字节的邮件到外部地址 goodmail@example2.com\ : .. raw:: latex \diilbookstyleinputcell .. code:: shell-session :0 * < 1000 ! goodmail@example2.com 要将所有发送到 alternate@example.com 的邮件发送到一个叫做 **alternate** 的邮箱: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session :0 * ^TOalternate@example.com alternate 将所有主题为“Spam”(垃圾邮件)的邮件发送至 **/dev/null**\ : .. raw:: latex \diilbookstyleinputcell .. code:: shell-session :0 ^Subject:.*Spam /dev/null 一个有用的配置,可以解析进入的 ``FreeBSD.org`` 邮件列表,并将每个列表放在它自己的邮箱中: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session :0 * ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG { LISTNAME=${MATCH} :0 * LISTNAME??^\/[^@]+ FreeBSD-${MATCH} }