This commit is contained in:
rsc 2006-05-21 18:39:29 +00:00
parent 38c7eb9bd2
commit f1007ee0c6
7 changed files with 173 additions and 0 deletions

View file

@ -0,0 +1,11 @@
aliasmail
filter
marshal
nedmail
qer
runq
send
smtp
smtpd
unvf
vf

35
bin/upas/isspam Executable file
View file

@ -0,0 +1,35 @@
#!/usr/local/plan9/bin/rc
rfork en
if (~ $#* 0)
echo usage: isspam mesg && exit 'usage'
TMP=/tmp/isspam.$USER.$pid
{
echo '# hash table'
msgcat $1|sed '/^$/,$ s/^From / From /'|upas/msgtok|
grep -v '^....................(.*) '|
sed 's/$/ 1/'
} >$TMP.tok
x=`{upas/bayes -k $HOME/mail/_prof.mbox $HOME/mail/_prof.spam ~ $TMP.tok}
where=$x(1)
prob=$x(2)
echo $where $prob
*=($x)
shift 2
while(! ~$#* 0){
echo ' ' $1 $2
shift 2
}
rm -f $TMP.tok
if (~ $where *spam*){
echo spam
exit ''
}
if not {
echo ok
exit 'is ok'
}

61
bin/upas/msgcat Executable file
View file

@ -0,0 +1,61 @@
#!/usr/local/plan9/bin/rc
fn read9p {
srv=$1; shift
9p read $srv >[2=1]|grep -v '^9p\:'
}
fn dir9p {
srv=$1; shift
9p ls $srv >[2=1]|grep -v '^9p\:'
}
fn catmesg {
# hold on for a second
TMP=/tmp/$USER.`{date -n}; sleep 1
msg=$1;
read9p $msg/body >$TMP.body
t=`{read9p $msg/type}
switch($t){
case text/html
echo '
,x/<!--(-?[^\-]|--[^>]|\n)*-->/ c//
,x/<[^>]+>/d
,p
u
,y/<[^>]+>/d
,p
'| sam -d $TMP.body|[2] sed '1d;/^\?/d'
case text/*
cat $TMP.body
case message/*
cat $TMP.body
case multipart/related
if (~ `{read9p $msg/1/type} text/plain)
catmesg $msg/1
if not if (~ `{read9p $msg/2/type} text/plain)
catmesg $msg/2
if not {
for (i in `{dir9p $msg|awk '$10 ~ /[0-9][0-9]*/ {print $10}'})
catmesg $msg/$i
}
case *
echo $t
# should there be more?
}
rm -f $TMP.body
}
if (~ $#* 0)
echo usage: msgcat mail/mbox/msgn && exit 1
mesg=$1
if (~ `{read9p $mesg/lines} '')
echo no such message $mesg && exit 2
read9p $mesg/unixheader; read9p $mesg/header
echo
catmesg $mesg
echo

19
bin/upas/spam Executable file
View file

@ -0,0 +1,19 @@
#!/usr/local/plan9/bin/rc
rfork en
if (~ $#* 0)
echo usage: spam mesg && exit 1
TMP=/tmp/spam.$USER.$pid
{
echo '# hash table'
msgcat $1|sed '/^$/,$ s/^From / From /'|upas/msgtok|
grep -v '^....................(.*) '|
sed 's/$/ 1/'
} >$TMP.tok
cd $home/mail
upas/addhash -o _prof.mbox _prof.mbox 1 $TMP.tok -1
upas/addhash -o _prof.spam _prof.spam 1 $TMP.tok 1
rm -f $TMP.*

14
bin/upas/spambox Executable file
View file

@ -0,0 +1,14 @@
#!/usr/local/plan9/bin/rc
if (~ $#* 0)
echo usage: spambox mailfs/mbox && exit "usage"
box=$1
msgs=(`{9p ls $box>[2=1]|awk '$10 ~ /[0-9][0-9]*/{print $10}'})
if (~ $#msgs 0)
echo no messages in $box && exit "none"
echo -n adding
for (m in $msgs){
echo -n ' '$m
spam $box/$m
}

19
bin/upas/unspam Executable file
View file

@ -0,0 +1,19 @@
#!/usr/local/plan9/bin/rc
rfork en
if (~ $#* 0)
echo usage: unspam mesg && exit 1
TMP=/tmp/unspam.$USER.$pid
{
echo '# hash table'
msgcat $1|sed '/^$/,$ s/^From / From /'|upas/msgtok|
grep -v '^....................(.*) '|
sed 's/$/ 1/'
} >$TMP.tok
cd $home/mail
upas/addhash -o _prof.mbox _prof.mbox 1 $TMP.tok 1
upas/addhash -o _prof.spam _prof.spam 1 $TMP.tok -1
rm -f $TMP.*

14
bin/upas/unspambox Executable file
View file

@ -0,0 +1,14 @@
#!/usr/local/plan9/bin/rc
if (~ $#* 0)
echo usage: unspambox mailfs/mbox && exit "usage"
box=$1
msgs=(`{9p ls $box>[2=1]|awk '$10 ~ /[0-9][0-9]*/{print $10}'})
if (~ $#msgs 0)
echo no messages in $box && exit "none"
echo -n adding
for (m in $msgs){
echo -n ' '$m
unspam $box/$m
}