Florian Effenberger wrote:
Hello,
I am looking for a command-line utility to automatically purge one Maildir folder. I want to periodically run sa-learn from cron, and after the spam learning folder has been added to the Bayes database, its contents should be deleted. I've searched a bit, but only found a few old utilities or some telnet+expect scripts, which both didn't look too reliable.
Is there any command-line utility to delete all contents of a Maildir folder, or is there any other solution?
Thanks, Florian
I would write a script that cron executes, and have the script do the sa-learn, then delete the file.
I run qmail-toaster, which uses vpopmail for virtual domains/accounts. My maildirs for learning ham/spam are shared, and are named sa-learn/Ham and sa-learn/Spam.
Here's the script that I run in cron.daily to execute sa-learn:
#!/bin/sh ##################################################################### # learn and remove spam and ham in shared folders ##################################################################### # shubes 3/26/08 - created #####################################################################
learndir="/home/vpopmail/domains/shubes.net/sa-learn" hambox=.Ham spambox=.Spam
do_the_learning(){
learnas=$1 maildir=$2
shopt -s extglob
for spamfile in find $maildir/+(cur|new)/* 2>/dev/null
; do
sudo -u vpopmail -H sa-learn --$learnas $spamfile
rc=$?
if [ $? != "0" ]; then
echo "sa-learn failed, rc=$rc, spamfile=$spamfile"
exit $rc
fi
rm $spamfile
done
}
do_the_learning ham "$learndir/$hambox" do_the_learning spam "$learndir/$spambox"
exit 0 # end of script
HTH.
-Eric 'shubes'