On 14-May-2007, at 05:46, Bruno Henrique de Oliveira wrote:
Necessary of aid to create one script that it reads the
folder .Trainings inside of the Maildir of the user and train as Spam.
Soon after the trainings the same script has that to move this message
for the Inbox of a called user Spam. One of the problems and use of the
vpopmail, the users of the same are not recorded in the /etc/shadow
archive. Suggestions of as to mount this script are comings well.

This is what I use:
#/bin/sh
#
# Straightforward shell script to be run as root.  This parses the /home
# directory for mailboxes named sa-learn-sapm and sa-learn-ham and runs
# sa-learn against them as the user.

# sa-learn-script (sal) v1.0 Lewis Butler, released to the Public Domain 2007
#
# $PREFIX is the prefix for the mailbox name, the two SUFFIX variable for
# each type of mail, and the MAILP for the path from $HOME to the mboxes
# to learn, the default is:
#
# /home/<user>/Mail/sa-learn-ham
# /home/<user>/Mail/sa-learn-spam

PREFIX="sa-learn-";
SPAMSUFFIX="spam";
HAMSUFFIX="ham";
USERROOT="/home";
MAILP="Mail/$PREFIX";

MYDATE=`date '+%d-%b-%Y'`;
#echo "$MYDATE";
for i in `ls $USERROOT/` ; do
   S_PATH="$USERROOT/$i/${MAILP}$SPAMSUFFIX";
   H_PATH="$USERROOT/$i/${MAILP}$HAMSUFFIX";

   #echo "";
   #echo "Checking user: $i";

# Don't run sa-learn if there is no such mbox, or if the mbox is empty
if test -s $S_PATH; then
   # echo -n "$i Processing Spam: ";
   /usr/local/bin/sa-learn --spam --mbox -u $i $S_PATH
/usr/local/bin/sudo -u $i sh -c "cat $S_PATH >> ${S_PATH}-$MYDATE && \
   cat /dev/null >  $S_PATH";
fi

# Don't run sa-learn if there is no such mbox, or if the mbox is empty
if test -s $H_PATH; then
   # echo -n "$i Processing Ham : ";
   /usr/local/bin/sa-learn --ham --mbox -u $i $H_PATH
/usr/local/bin/sudo -u $i sh -c "cat $H_PATH >> ${H_PATH}-$MYDATE && \
   cat /dev/null >  $H_PATH";
fi

#echo "$i DONE";
done

This, however, works just as well for most purposes and is much much shorter (in fact, it works well as a one liner).

for i in `ls /home/`;
  do find /home/$i/Mail/sa-learn-spam | sa-learn --spam --mbox -u $i;
  sa-learn --ham --mbox -u $i /home/$i/Mail/sa-learn-ham;
  echo "$i DONE";
done

Vpopmail

Ah... er... well, not familiar with vpopmail...

--
Rumour is information distilled so finely that it can filter through anything. It does not need doors and windows -- sometimes it does not need people. It can exist free and wild, running from ear to ear without ever touching lips.

Reply via email to