This is me trying to ape other people's recipes in order to put together
the most concise possible semi-moderation recipe for SmartList's
rc.local.s10. I would be grateful for all opinions as it would be a size
nine bitch to test this on a live list. I'm suspicious of my nesting blocks
in particular.
Semi-moderation means that non-subscribers are moderated, subscribers are
not moderated by default but that can be rescinded; miscreants are put in
the "moderated" file.
Prerequisites are an open, unmoderated list.
__________________________________________________________________
:0 # Check if the message has the correct Approved: headerfield.
# If it does, remove the field; everything else in this rc
# should subsequently be ignored.
* ^Approved:.*$moderator_PASSWORD
| formail -I Approved:
{
:0E # Check if the person is on the accept list
* 2^0 ? formail -X"From " -xFrom: -xReply-To: -xSender: -xResent-From: \
-xResent-Reply-To: -xResent-Sender: -xReturn-Path: | \
multigram -b1 -m -l$submit_threshold -L$domain \
-x$listaddr -x$listreq accept accept2 accept3
:0 E wfh # If not, bounce the message to the maintainer
| formail -A "X-Diagnostic: Not on the accept list"
}
{
:0E # Check if the person is in the moderated file
* 2^0 ? formail -X"From " -xFrom: -xReply-To: -xSender: -xResent-From: \
-xResent-Reply-To: -xResent-Sender: -xReturn-Path: | \
multigram -b1 -m -l$submit_threshold -L$domain \
-x$listaddr -x$listreq moderated
:0 a wfh # If so, bounce the message to the maintainer
| formail -A "X-Diagnostic: Not on the accept list"
}
___________________________________________________________________
TIA,
--Ken
68 Westy, Admin -- type2 -- The VW Bus Mailing List