new
This commit is contained in:
parent
38c7eb9bd2
commit
f1007ee0c6
7 changed files with 173 additions and 0 deletions
|
|
@ -0,0 +1,11 @@
|
||||||
|
aliasmail
|
||||||
|
filter
|
||||||
|
marshal
|
||||||
|
nedmail
|
||||||
|
qer
|
||||||
|
runq
|
||||||
|
send
|
||||||
|
smtp
|
||||||
|
smtpd
|
||||||
|
unvf
|
||||||
|
vf
|
||||||
35
bin/upas/isspam
Executable file
35
bin/upas/isspam
Executable 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
61
bin/upas/msgcat
Executable 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
19
bin/upas/spam
Executable 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
14
bin/upas/spambox
Executable 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
19
bin/upas/unspam
Executable 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
14
bin/upas/unspambox
Executable 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
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue