blob: 5794f7322a00bf717bae0794d0cec6420ccf39af (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#!/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
|