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 if ( $BIN/token $KEY $D/subject )
38 5cdb1798 2005-10-29 devnull {
39 5cdb1798 2005-10-29 devnull $BIN/deliver $RECIP $D/from $MBOX < $D/raw
40 5cdb1798 2005-10-29 devnull $BIN/list add $PF $D/from $D/to $D/cc $D/sender
41 5cdb1798 2005-10-29 devnull rm $TMP
42 5cdb1798 2005-10-29 devnull echo `{date} added $RECIP From `{cat $D/replyto} \
43 5cdb1798 2005-10-29 devnull >> /mail/box/$USER/_bounced >[2] /dev/null
44 5cdb1798 2005-10-29 devnull exit 0
45 5cdb1798 2005-10-29 devnull }
46 5cdb1798 2005-10-29 devnull
47 5cdb1798 2005-10-29 devnull # don't recognize the sender so
48 5cdb1798 2005-10-29 devnull # return the message with instructions
49 5cdb1798 2005-10-29 devnull TOKEN=`{upas/token $KEY}
50 5cdb1798 2005-10-29 devnull upasname=/dev/null
51 5cdb1798 2005-10-29 devnull {{cat; cat $D/raw} | upas/send `{cat $D/replyto}}<<EOF
52 5cdb1798 2005-10-29 devnull Subject: $USER's mail filter
53 5cdb1798 2005-10-29 devnull I've been getting so much junk mail that I'm resorting to
54 5cdb1798 2005-10-29 devnull a draconian mechanism to avoid the mail. In order
55 5cdb1798 2005-10-29 devnull to make sure that there's a real person sending mail, I'm
56 5cdb1798 2005-10-29 devnull asking you to explicitly enable access. To do that, send
57 5cdb1798 2005-10-29 devnull mail to $USER at this domain with the token:
58 5cdb1798 2005-10-29 devnull $TOKEN
59 5cdb1798 2005-10-29 devnull in the subject of your mail message. After that, you
60 5cdb1798 2005-10-29 devnull shouldn't get any bounces from me. Sorry if this is
61 5cdb1798 2005-10-29 devnull an inconvenience.
62 5cdb1798 2005-10-29 devnull
63 5cdb1798 2005-10-29 devnull ----------------
64 5cdb1798 2005-10-29 devnull Original message
65 5cdb1798 2005-10-29 devnull ----------------
66 5cdb1798 2005-10-29 devnull EOF
67 5cdb1798 2005-10-29 devnull
68 5cdb1798 2005-10-29 devnull echo `{date} bounced $RECIP From `{cat $D/replyto} \
69 5cdb1798 2005-10-29 devnull >> /mail/box/$USER/_bounced >[2] /dev/null
70 5cdb1798 2005-10-29 devnull
71 5cdb1798 2005-10-29 devnull rv=$status
72 5cdb1798 2005-10-29 devnull rm $TMP
73 5cdb1798 2005-10-29 devnull exit $status