Occasionally, a site may require certain messages to be automatically sent to a known address.
For example, all messages containing the keyword "bug" might be sent to an bug tracking
system. This policy adds a new recipient to a message (bugs@example.com) when
the "Subject" header has the string "bug" in it, the recipient is
"old-bugs@example.com", or the header "X-Bug-Id" exists.
# attr NAME=add a recipient
# Adds a "bugs@example.com" recipient to the envelope.
if anyof (header :matches "Subject" "*bug*",
envelope "to" "old-bugs@example.com",
header :matches "X-Bug-Id" "*") {
pmx_add_recipient "bugs@example.com";
}
Description:
- The first command is an if anyof statement comprised of three compound
tests. The header test returns "true" if the "Subject" header matches the string
"bug". The envelope test returns "true"
if anyof the message's recipient "To" headers match the string
"old-bugs@example.com". The second header test returns "true" if the "X-Bug-Id"
header matches itself. If any of these three tests return "true":
- The pmx_add_recipient command delivers the message to
bugs@example.com. The message is also delivered to all original envelope
recipients.
Where does this filter go?
The "add a recipient" filter should be placed before the filter in "Policy Script 1:
Scan and Deliver Internal Messages" and directly after the pmx_test_mark
action. Positioning the "add a recipient" filter at this point ensures that:
- The "add a recipient" filter always executes. (A stop command from
another filter will not prevent it from executing.)
- Subsequent spam and virus filters will always execute. (The "add recipient" filter does
not contain a stop command that would otherwise end the policy script before
spam and virus filters execute.)