URL: https://linuxfr.org/forums/general-general/posts/procmail-sa-learn-ham-et-white-listing Title: procmail, sa-learn, ham et white-listing Authors: Djax Date: 2004年09月16日T15:25:54+02:00 Tags: Score: 0 Bon(jour|soir), J'aimerais fournir du jambon de qualité (HAM) à spamassassin pour l'éduquer avec sa-learn. Tout mon mail passe par procmail pour finir sous forme Maildir (pour courier-imap). Mon .procmailrc est constitué comme ça: ---------------- 1a. envoyer les virus (clamav) vers /dev/null
:0 HB : * !? clamscan --quiet --unzip - /dev/null # Virus bagleb :0 : * ^Subject:.*ID .*thanks /dev/null #.Viruses/ # Attachements indésirables :0 HB: * .*name=.*\.(scr|vba|vb|bat|cmd|pif) /dev/null #.Viruses/ :0 B * ^Content-Type: .*/.*;$?.*name=.*\.(scr|vba|vb|bat|cmd|pif) /dev/null #.Viruses/
2 envoyer les mails de chaque gens connus vers son propre dossier (des centaines de règles que j'ai pas envie de modifier (une personne = un dossier)) 3a. tout mail qui n'est ni un virus, ni whitelisté est confronté à spamc qui le tague.
:0 fw * < 256000 | spamc
4. Si c'est un spam, direction Maildir/.SPAM/
:0 a: *(^X-SpamProbe: SPAM|^X-Spam-Status: Yes) .SPAM/
5. sinon Maildir/
:0 : $DEFAULT
---------------- A la main, j'envoie tous les spam non reconnus vers Maildir/.SPAM.MissedSpam/ Chaque nuit, un script (educate_sa) éduque spamassassin: 8<-------------------------
#!/bin/sh # educate SpamAssassin maildir=/home/djax/Maildir salearn=/usr/local/bin/sa-learn rm=/bin/rm empty_folder(){ if [[ $(ls -a 1ドル | wc -w) -gt 2 ]] ;then £spaces£ £/spaces£$rm 1ドル/* £spaces£ £/spaces£echo "1ドル has been cleaned." else £spaces£ £/spaces£echo "1ドル is an empty folder" fi } $salearn --spam --dir $maildir/.SPAM.MissedSpam/new/; empty_folder $maildir/.SPAM.MissedSpam/new $salearn --spam --dir $maildir/.SPAM.MissedSpam/cur/; empty_folder $maildir/.SPAM.MissedSpam/cur $salearn --ham --dir $maildir/.SPAM.NotSpam/cur/ ; empty_folder $maildir/.SPAM.NotSpam/cur $salearn --ham --dir $maildir/.SPAM.NotSpam/new/ ; empty_folder $maildir/.SPAM.NotSpam/new
---------------------------->8 Ce que j'aimerais faire, c'est faire une règle 1b, qui copie tous les messages non vérolés vers un dossier .SPAM/NotSpam/ genre:
:0 c: .SPAM.NotSpam/
Puis faire une règle3b: si c'est du SPAM détruire le fichier mis dans le dossier .HAM/ , je vois pas trop comment, vu que je ne sais pas le nom du fichier de la règle 1b et si le nom sera le même. Procéder avec un md5sum ne sert à rien car le message est modifié par spamc. Peut-être un ajoutant un header genre X-my_mailid: 00000000000000001, mais je trouve ça un peu lourd. Un autre problème sera de supprimer les messages présent dans .SPAM.MissedSPAM/(cur|new)/ du répertoire .SPAM.NotSpam/. Si les nom des fichiers de mails sont les mêmes, un -------------------------
cd ~/Maildir/.SPAM/ for i in $(ls -p cur new | grep ^1 ); do £spaces£ £/spaces£if [ -f ~/Maildir/.SPAM.MissedSpam/new/$i ];then £spaces£ £/spaces£rm ~/Maildir/.SPAM.MissedSpam/new/$i £spaces£ £/spaces£else if [ -f ~/Maildir/.SPAM.MissedSpam/cur/$i ];then £spaces£ £/spaces£rm ~/Maildir/.SPAM.MissedSpam/cur/$i fi
-------------------------- pourrait suffire, idem pour le NotSpam (bien que pouvoir voir tout les messages viable du jour pourrait être aussi sympa) Merci pour toute l'aide que vous pour m'apporter.

AltStyle によって変換されたページ (->オリジナル) /