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 dragonflybsd.org mailing lists and places each list in its own mailbox:
:0 * ^List-Post: <mailto:\/[^@]+ { LISTNAME=${MATCH} :0 * LISTNAME??^\/[^-]+ DragonFly-${MATCH} }
Contact the Documentation mailing list for comments, suggestions and questions about this document.