#!/bin/rc # create a /tmp for here documents rfork en bind -c /mail/tmp /tmp KEY=whocares USER=ken RECIP=$1 MBOX=$2 PF=/mail/box/$USER/_pattern TMP=/mail/tmp/mine.$pid BIN=/bin/upas D=/mail/fs/mbox/1 # save and parse the mail file {sed '/^$/,$ s/^From / From /'; echo} > $TMP upas/fs -f $TMP # if we like the source # or if the subject contains a valid token # then deliver the mail and allow all the addresses if( $BIN/list check $PF $D/from $D/sender $D/replyto ) { $BIN/deliver $RECIP $D/from $MBOX < $D/raw $BIN/list add $PF $D/from $D/to $D/cc $D/sender rm $TMP exit 0 } switch($status){ case *!match* echo `{date} dropped $RECIP From `{cat $D/replyto} >> /mail/box/$USER/_bounced >[2] /dev/null rm $TMP exit 0 } # don't recognize the sender so hold the message $BIN/deliver $RECIP $D/from /mail/box/$USER/_held < $D/raw rv=$status rm $TMP exit $status