[Tech] procmail e estrazione dei mittenti

Marco Ermini markoer@markoer.org
Mar 24 Ago 2004 19:43:08 CEST


<quota chi="Valerio Montagnani">
> Ciao a tutti.
>
> E' possibile fare in modo di estrarre l'indirizzo del mittente da una
> mail, usando una regola di procmail, in modo da costituire una lista di
> cattivi?
>
> L'idea che mi è venuta in mente è questa: analizzare le mail prima del
> filtro antispam confrontando il mittente con una lista di mittenti
> spammer. Se il mittente è inserito nella lista dei cattivi, il messaggio
> deve finire direttamente nella cartella dello spam, altrimenti essere
> processato da spamassassin, che stabilirà se il messaggio è spam o meno.
> Nel caso sia spam dovrà estrarre il mittente accodarlo alla lista dei
> cattivi e spostare la mail nella cartella spam.
</quota>

Mi sembra un lavoro inutile, anche perché devi implementare procmail non a
livello utente ma a livello di sistema, il che è un collo di bottiglia
inutile - soprattutto quando hai spamassassin.

Basta che crei un tuo file .cf e lo metti nella cartella di spamassassin
(di solito /etc/mail/spamassassin) e ci metti una cosa del genere per ogni
"cattivo":

---
header          MyList_cattivo01    From =~ /.*<cattivo\@spammer\.com>/
describe        MyList_cattivo01    MyList cattivo numero 01
score           MyList_cattivo01    10.0
---

Se vuoi generare automaticamente una lista del genere da un elenco di
email, ti basta uno script perl da 5 minuti:


---
#!/usr/bin/perl

$filename = "/etc/mail/spamassassin/macchi_url_list.txt";

open (DESTCFFILE,">$destlist");

open (URLFILE,"$filename") || die "Can't Open $filename: $!\n";
@urllist = <URLFILE>;
close URLFILE;

print "# macchilist.cf\n# automatically generated\n\n";

$count = 0;
foreach $url (@urllist) {
        chomp($url);
        print "header\t\tMyList_$count\tFrom =~ /.*<$url>/\n";
        print "describe\tMyList_$count\tMyList auto-generated blacklist
#$count\n";
        print "score\t\tMyList_$count\t3.0\n\n";
        $count++;
}
---
(attenzione alle regexp). Lo lanci con nomescript.pl > mylist.cf

Ovviamente prima di riavviare spamassassin (e amavisd se lo usi) fai uno
spamassassin --lint per controllare che non ci siano regole sbagliate.


Ciao.
-- 
Marco Ermini
http://www.markoer.org
Dubium sapientiae initium. (Descartes)
root@human # mount -t life -o ro /dev/dna /genetic/research
<< This message is for the designated recipient only and may contain
privileged or confidential information. If you have received it in
error, please notify the sender immediately and delete the original.
Any other use of the email by you is prohibited. >>



Maggiori informazioni sulla lista flug-tech