Contributed by Marc Silver.
The procmail utility is an incredibly powerful application
used to filter incoming mail. It allows users to define “rules” which can be
matched to incoming mails to perform specific functions or to reroute mail to alternative
mailboxes and/or email addresses. procmail can be installed
using the mail/procmail port. Once installed, it can be directly
integrated into most MTAs; consult your MTA documentation for more information. Alternatively, procmail can be integrated by adding the following line to a .forward in the home directory of the user utilizing procmail features:
"|exec /usr/local/bin/procmail || exit 75"
The following section will display some basic procmail
rules, as well as brief descriptions on what they do. These rules, and others must be
inserted into a .procmailrc file, which must reside in the
user's home directory.
The majority of these rules can also be found in the
procmailex(5)
manual page.
Forward all mail from <[email protected]>
to an
external address of <[email protected]>
:
:0
* ^From.*[email protected]
! [email protected]
Forward all mails shorter than 1000 bytes to an external address of <[email protected]>
:
:0
* < 1000
! [email protected]
Send all mail sent to <[email protected]>
into
a mailbox called alternate:
:0
* ^[email protected]
alternate
Send all mail with a subject of “Spam” to /dev/null:
:0
^Subject:.*Spam
/dev/null
A useful recipe that parses incoming FreeBSD.org mailing lists
and places each list in its own mailbox:
:0
* ^Sender:.owner-freebsd-\/[^@][email protected]
{
LISTNAME=${MATCH}
:0
* LISTNAME??^\/[^@]+
FreeBSD-${MATCH}
}