[Dovecot] VERY cool add-on request.
tblader
tblader at flambeau.com
Fri Mar 17 21:16:53 EET 2006
Adam M. Dunn wrote:
<snip>
>
> How cool would that be? It seems like an easy hook to implement. I would
> like to patch it myself for my own use, but I'm not very proficient in C.
> I saw someone on the net patched Courier to do the same thing so I know
> I'm not alone in wanting this. Anyone know how I could patch it?
Adam,
Yup, that's pretty cool. You may be able to accomplish the same thing this way:
- new folder learnspam
- new folder learnham
- move incoming mail to folder according to spam/ham
- on your *nix box setup a crontab to run every 4 hours
- 0 */4 * * * /usr/local/bin/salearn.sh
- in salearn.sh, put the following
------>8------>8------>8------>8--------------
#!/bin/bash
DIR="/var/spool/mail/"
Learn()
{
username="$1" # the users mailbox to scan
school="$2" # type of learning to do
email="$3" # who to email when done
# loop through all "learn" new, cur and tmp dirs in : /var/spool/mail/$username/
for f in `find $DIR/$username -name '.learn'"$school" -type d`; do
#echo "learning spam in $f"
l1=`sa-learn --$school "$f/new/*"`
l2=`sa-learn --$school "$f/cur/*"`
l3=`sa-learn --$school "$f/tmp/*"`
NOW=`date +%D" "%T`
# creaate an email message
printf "$school learned from account %s\n---------------\nmails in new:%s\nmails in cur:%s\nmails in tmp:%s" "$username" "$l1" "$l2" "$l3" | mailx -s "$school learned for $NOW" "$email"
#echo "cleaning up learn* mail box"
# remove echo and double quotes to actually do anything
echo "/bin/rm -rf $f/new/*"
echo "/bin/rm -rf $f/cur/*"
echo "/bin/rm -rf $f/tmp/*"
done
}
# pass the account and...
# the type of learning to do - also the directory name so must be either 'ham' or 'spam'
# where to send the email
#
Learn 'testuser' 'spam' 'user1 at domain.com'
Learn 'testuser' 'ham' 'user1 at domain.com'
------>8------>8------>8------>8--------------
More information about the dovecot
mailing list