Blame


1 5cdb1798 2005-10-29 devnull #!/bin/rc
2 5cdb1798 2005-10-29 devnull
3 5cdb1798 2005-10-29 devnull # create a /tmp for here documents
4 5cdb1798 2005-10-29 devnull rfork en
5 5cdb1798 2005-10-29 devnull bind -c /mail/tmp /tmp
6 5cdb1798 2005-10-29 devnull
7 5cdb1798 2005-10-29 devnull KEY=whocares
8 5cdb1798 2005-10-29 devnull USER=ken
9 5cdb1798 2005-10-29 devnull
10 5cdb1798 2005-10-29 devnull RECIP=$1
11 5cdb1798 2005-10-29 devnull MBOX=$2
12 5cdb1798 2005-10-29 devnull PF=/mail/box/$USER/_pattern
13 5cdb1798 2005-10-29 devnull TMP=/mail/tmp/mine.$pid
14 5cdb1798 2005-10-29 devnull BIN=/bin/upas
15 5cdb1798 2005-10-29 devnull D=/mail/fs/mbox/1
16 5cdb1798 2005-10-29 devnull
17 5cdb1798 2005-10-29 devnull # save and parse the mail file
18 5cdb1798 2005-10-29 devnull {sed '/^$/,$ s/^From / From /'; echo} > $TMP
19 5cdb1798 2005-10-29 devnull upas/fs -f $TMP
20 5cdb1798 2005-10-29 devnull
21 5cdb1798 2005-10-29 devnull # if we like the source
22 5cdb1798 2005-10-29 devnull # or if the subject contains a valid token
23 5cdb1798 2005-10-29 devnull # then deliver the mail and allow all the addresses
24 5cdb1798 2005-10-29 devnull if( $BIN/list check $PF $D/from $D/sender $D/replyto )
25 5cdb1798 2005-10-29 devnull {
26 5cdb1798 2005-10-29 devnull $BIN/deliver $RECIP $D/from $MBOX < $D/raw
27 5cdb1798 2005-10-29 devnull $BIN/list add $PF $D/from $D/to $D/cc $D/sender
28 5cdb1798 2005-10-29 devnull rm $TMP
29 5cdb1798 2005-10-29 devnull exit 0
30 5cdb1798 2005-10-29 devnull }
31 5cdb1798 2005-10-29 devnull switch($status){
32 5cdb1798 2005-10-29 devnull case *!match*
33 5cdb1798 2005-10-29 devnull echo `{date} dropped $RECIP From `{cat $D/replyto} >> /mail/box/$USER/_bounced >[2] /dev/null
34 5cdb1798 2005-10-29 devnull rm $TMP
35 5cdb1798 2005-10-29 devnull exit 0
36 5cdb1798 2005-10-29 devnull }
37 5cdb1798 2005-10-29 devnull
38 5cdb1798 2005-10-29 devnull # don't recognize the sender so hold the message
39 5cdb1798 2005-10-29 devnull $BIN/deliver $RECIP $D/from /mail/box/$USER/_held < $D/raw
40 5cdb1798 2005-10-29 devnull
41 5cdb1798 2005-10-29 devnull rv=$status
42 5cdb1798 2005-10-29 devnull rm $TMP
43 5cdb1798 2005-10-29 devnull exit $status