mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
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…
Reference in a new issue