Newsgroup: it.comp.os.linux.sys
Titolo: Mi date una mano con una regola di procmail?

c'è uno spammatore del cavolo che mi sta riempiendo la posta di
schifezze, che per come sono fatte riescono a passare attraverso
spamassassin. (chi è stato il genio che ha messo l'html nella posta?)
Tutte le mail indesiderate hanno in comune una cosa: l'intestazione è
relativamente standard, si vede che le mail sono fatte con un programma.
Il subject della mail è del tipo "<prima parte> <seconda parte>", 
dove in prima parte ci sono un po' di termini e così pure nella seconda e
poi vengono permutati a caso e inviati. 
Il problema è che ormai la regola di procmail sta diventando enorme, io
attualmente uso una roba del tipo:
:0H:
* (prima_parte1 seconda_parte1|\
prima_parte1 seconda_parte2|\
prima_parte1 seconda_parte3|\
prima_parte2 seconda_parte1|\
prima_parte2 seconda_parte2|\
...
)
Vorrei compattare la formulazione della regola, impostando di trovare
tutte le mail che hanno la prima parte che appartiene ad un insieme di
prime parti e la seconda parte che appartiene ad un insieme di seconde
parti. Non so se sia importante, nelle varie parti possono essere presenti
anche spazi, perché sono composte da più parole.
Qualcuno di voi mi sa aiutare, per piacere?

 poi vengono permutati a caso e inviati. 
Sicuro che l'unica parte in comune sia nel subject? Filtrare sul subject
lo spam, e` una bella bega. Possibile che non ci siano altri elementi
comuni?
Che ne so, il boundary, o qualcosa del genere?
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
"SPARC" is "CRAPS" backwards --Rob Pike

 )
Prova 'na roba del genere:
    ( \
	    (prima_parte1 | prima_parte2 | ...) | \
	    (seconda_parte1 | seconda_parte2 | ...) \
    )
Per gli spazi dovresti poter usare l'escape ('\ '), se i doppi apici
vengono interpretati come chiavi di ricerca.
Purtroppo non so ne se procmail sia in grado di elaborare regex cosi'
formate, ne di quanti ore/macchina possa aumentare l'elaborazione
continuata.
	tentatamente,
	   Cthulhu
-- 
http://www.rlyeh.it/

 Che ne so, il boundary, o qualcosa del genere?
? ehm, what's boundary?

 continuata.
urca....
ma mettendo le regex in forma così compatta ho perdita di prestazioni?
Altrimenti posso da procmail dire di invocare localmente uno spamassassin
dove metto le regexp più complesse?

 dove metto le regexp piů complesse?
Si.
Nel mio .procmailrc ho una cosa tipo
____________________________________
VERBOSE=on
MAILDIR=$HOME/procmail/
LOGFILE=$MAILDIR/log
:0fw: spamassassin.lock
* < 256000
| /usr/bin/spamc -f -U/tmp/spamdsock
:0:
* ^X-Spam-Status: Yes
/home/daniele/Mail/spam
______________________________________
mentre nella crontab ho configurato spamd a partire a ogni avvio della 
macchina. 
Spamd-spamc e' piu' performante di spamassassin, anche cosi' lo spamd 
residente in memoria si ciuccia i suoi bravi 17-18 MB di RAM.
Ciao

 ? ehm, what's boundary?
Se si tratta di un mime-multipart, questi ha un boundary che definisce
le varie regioni. Direi rfc1341.
Su questo, mi e` capitato di fare match.
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
I used up all my sick days, so I'm calling in dead.

 Su questo, mi e` capitato di fare match.
ci farò caso.

 ma mettendo le regex in forma così compatta ho perdita di prestazioni?
Teoricamente migliorano, perche' riduci il numero di confronti nel caso
migliore. Poi pero' sta a vedere come procmail o chi per lui sbroglia le
parentesi. Ad ogni modo, credo che differenze di computazione siano
apprezzabili solo con flussi di migliaia di email all'ora. :)
Tra l'altro, in quella roba che ti ho postato manca la definizione dello
spazio tra "prima_parte*" e "seconda_parte*". E mi viene il dubbio che
l'OR tra i due meta blocchi debba invece essere un AND (che con le regex
e' implicito, quindi basta metterci lo spazio). Beh, ho la logica
booleana un pochino arrigginita, se decidi di provarla prima dimmelo che
faccio qualche test. :)
	rinfrescatamente,
	    Cthulhu
-- 
http://www.rlyeh.it/