Enhancement #226
closedAlternative antispam learning method
100%
Description
Currently, users can resend SPAM or HAM to special addresses, or use the web interface, but it is not always convenient, mostly for web-phones users.
The project is to use the dovecot-antispam plugin, in order to just have to move mails in or out a special folder in order to retrain. This folder could be automatically created and subscribed, and once SPAM is marked in the headers, it could be redirected into it automatically using SIEVE. This should not be a big deal but a few hours of work. The problem lies in dovecot-antispam behavior, which is redirecting mails to retraining at once. So if many mails are retrained around the same time, the server would be flooded with plenty of ressource-intensive DSPAM processes. Fortunately, the plugin is able to create a spool, leaving to another daemon the task to retrain them.
The goal of this project is to create this daemon, which should be able to :
- monitor the dovecot-antispam spool and manage a limited pool of DSPAM invocations (max number of process in the configuration)
- handle each mail of the queue with a certain delay (seconds in configuration)
- handle cancellation of requests when the user makes a mistake, double-retrain, and the first retrain is still in the queue
- call an antispam retraining script (script name and parameters in the configuration)
High level language required: Ruby (prefered), Python, Modern Perl OO.
Updated by Marc Dequènes almost 13 years ago
- Status changed from New to In Progress
- Assignee set to Marc Dequènes
Updated by Marc Dequènes almost 13 years ago
- % Done changed from 0 to 80
- arnau
- happypeng
- duck
Updated by Marc Dequènes almost 13 years ago
- % Done changed from 80 to 90
- Help Needed set to No
The program worked without problem during several days. Retraining SPAM worked but HAM was not properly processed: srv_dspam_retrain did not understand ham as class name so i made an alias to innocent.
I just added host load check via an external script or Ruby coded loaded like a plugin, and preliminary checks worked well.
Updated by Marc Dequènes almost 13 years ago
Everything's fine since latest changes, so i made a new bunch of updates to improve a few things and make the software generic. Preliminary tests are ok.
I now need to find a real proper name for the project and add some documentation.
Updated by Marc Dequènes almost 13 years ago
- Status changed from In Progress to Resolved
- % Done changed from 90 to 100
The Spoolinger has been created linked with the git repository.
A few improvements have been made, and it is now really generic. The 0.2 release is used in production and seems stable.
This issue is now over. It is now a matter of project maintenance and DC administration.