#!/usr/local/bin/perl
#####################################################################
# Script utilisé pour générer la page http://lagavulin.lacave.net/mailer/
# Diffusion libre, dans le domaine public, sans aucune garantie d'aucune
# sorte.
# Réalisé à l'origine par Frédéric Senault, fred@lacave.net
use strict;
my %sw;
my %af;
open(S,"/var/www/lacave.net/lagavulin/mailer/spamware.txt") || die("spamware.txt : $!");
while() {
next if(/^#/);
chomp;
my($s,$f)=split("\t");
$sw{$s}=$f;
foreach(split(/\|/,$f)) { $af{$_}=1; }
}
close(S);
print "Liste des signatures
\n";
my $i;
print "
\n";
print " \n";
foreach my $s (sort { lc($a) cmp lc($b) } keys(%sw)) {
print "Signature Champ(s) \n";
}
print "".$s." ".join(", ",split(/\|/,$sw{$s}))." Règles calculées
\n";
print "
Voici une série de règles dans divers langages de filtres, conçues à partir de la liste ci-dessus. "; print "Chacun fera plus que probablement des ajustements par rapport à ce qui est proposé ici, mais je pense que c'est un bon départ. "; print "Notez que je favorise la destruction silencieuse des spams, partant du principe qu'un rejet (bounce) est une perte de temps et de bande passante.
"; my(%r1,%r2,%r3,%r4); foreach my $s (sort { lc($a) cmp lc($b) } keys(%sw)) { my $rk=$sw{$s}; $r1{$rk}.='|'.$s; if($rk=~/(X-Mailer|X-Sender)/) { my $rk2; if($rk=~/X-Mailer/ && $rk=~/X-Sender/) { $rk2="X-Mailer|X-Sender"; } elsif($rk=~/X-Mailer/) { $rk2="X-Mailer"; } else { $rk2="X-Sender"; } $r2{$rk2}.='|'.$s; } my $rk3=$sw{$s}; if(length($s)>6) { $rk3=join('|',keys(%af)); } $r3{$rk3}.='|'.$s; foreach(split(/\|/,$rk)) { $r4{$_}.='|'.$s; } } my $i=0; my @n=('chirurgicales','économes','napalm'); my @d=("Ces règles sont calculées le plus précisément possible en fonction des ". "différents champs d'en-tête soumis.", "Ces règles simplifient le traîtement en ne s'appliquant qu'aux deux ". "champs les plus fréquents, X-Mailer et X-Sender", "Ces règles regroupent tout dans le même sac et font la détection dans ". "un maximum de champs, à l'exception des signatures de cinq lettres ou ". "moins, qui pourraient trop facilement générer de faux posififs."); foreach my $set ((\%r1,\%r2,\%r3)) { print "".$d[$i]."
\n"; $i++; print "Avec la structure du fichier de configuration de SpamAssassin, difficile de faire autre chose que la version la plus précise...
"; print "