Newsgroup: it.comp.os.linux.iniziare
Titolo: Procmail---Dove va a finire la posta..in che formato

Sto configurando la posta con il manuale di MrsShark ma mi chiedovo una cosa
che non mi è chiara ... tutta la posta filtrata da procmail in che formato
viene salvata.. e come faccio a farla vedere a programmi "standard" ...???
Saluti Christian
P.S. Ma da procmail la si può mandare ad un pop3 locale in modo da essere
ridistribuita..???

ridistribuita..???
Certo, ti basta farti un file .procmailrc, e specificare nel .fetchmailrc
di smistare poi le mail con procmail, quando le riceve, secondo i criteri
indicati (man procmail, man procmailrc, man procmailex).
Adesso ti diranno che questo non è un modo sicuro, che è meglio usare
sendmail come mda e poi richiamare procmail da sendmail, perché sennò
si rischia di perdere della posta. L'han detto in molti, io mi sono basato
sulla documentazione linux e ho fatto direttamente con procmail, e finora
non ho perso niente (credo, la posta continua ad arrivare!).
Inoltre, puoi far avviare dal sistema fetchmail come demone, io ho messo
in ip-up.local:
su - <utente1> -c "fetchmail -d 300"&
su - <utente2> -c "fetchmail -d 300"&
E in ip-down.local ovviamente questi demoni vengono killati (non ha senso
cercare di scaricare la posta quando si è disconnessi).
In questo modo, fetchmail viene avviato per ogni utente sulla macchina,
che sia collegato oppure no, e ogni 300 secondi la sua posta viene
trasferita dall'indirizzo di posta remota (indicato poi in ~/.fetchmailrc)
allo spool del sistema locale. Eventualmente, se l'utente ha indicato
anche un ~/.procmailrc, la posta gli viene anche filtrata secondo i suoi
desideri.
Non ha che da avviare un programma di posta che legga i file che ha
indicato essere le sue mbox nel file di configurazione del programma
stesso (io ti posso parlare di mutt, uso quello) e leggersi la sua posta
già filtrata e smistata.
Questo indipendentemente per *ogni* utente.
-- 
Crononauta                | togli xxx dall'indirizzo  | 
==========                | per rispondermi in e-mail | 
ICQ UIN: 4005815                                          
IDAnet: 
http://adcserver1.biodip.unimi.it/ida/index.htm
GP Legends: 
http://www.multiplayer.it/driving/

 wrote:
Ti sfrutto.. la cosa è che ho la seguente catena....
Postfix - smtp
Fetchmail - scarico e con procmail cerco di filtrare..
ho messo in procmail il seguente file di configurazione
:0c:
* .backup
:0:
* IN.default
ma il file IN.default non viene letto corettemente dai programmi di
posta,....
che configurazione devo fare in modo che tutta la posta che mi interessa
vada a finire /var/spool ecc.ecc.. usando procmail che mi sembra essere
facile da utilizzare.. ??
Saluti Christian
P.s. Per la questione di configurazione dell'attivazione del demon fetchmail
ecc.ecc.. mi sono basato sulle direttiva di MRsHark !!

posta,....
Infatti sono sbagliate sintatticamente. 
Man procmailex!!!!
Le regole sono fatte secondo questo criterio:
:0 <comando>: file.lock
* regola
/path/di/destinazione
Una regola comincia sempre con :0, eventualmente puoi indicare un file di
lock. il file di lock è opzionale, io in effetti non uso file di lock (a
essere sinceri non ho capito che siano... senza funziona lo stesso, per
cui...).
Il <comando> indica il tipo di "analisi" che viene effettuata. Dal man di
procmailrc, ti segnalo i più importanti:
H fa il controllo sugli header;
B sul body;
c fa una carbon copy della mail;
! inverte la condizione (equivale a "tutto quello che non...").
Per default è H, se non metti niente viene fatta l'analisi sugli header
(che è quella che generalmente interessa).
Poi c'è un * cui seguono le regole, sono regexp. 
Infine segue la destinazione, che deve essere un mbox esistente. Accertati
che esista, sennò perdi la posta!!!
Vediamo qualche esempio per capire come funzionano le regole.
Un classico è filtrare secondo la provenienza. Ovvero (per esempio),
eccoti un comando completo che filtra la posta proveniente da
ti...@caio.it
 e la sposta nella mbox "posta_da_tizio":
0:
* ^From:.*tizio@caio\.it
~/mail/posta_da_tizio
Qualche commento che ci aiuta a capirle meglio:
0:	inizia una regola, non viene impiegato lock file. Per default,
	l'analisi verrà fatta sugli header, visto che non è specificato
	nulla di diverso (B, c...)
*	obbligatorio, va all'inizio di una riga che precede la regola
	sulla base della quale verranno filtrate le mail.
^	Indica che tutto quello che segue deve iniziare su una nuova riga.
Per fare un esempio, supponiamo arrivi una mail con il seguente header:
From:ti...@caio.it
		<- incontra la regola dell'esempio;
Campo 
From:ti...@caio.it
 	<- NON incontra la regola.
Infatti nel secondo caso il "From:" NON è a inizio riga, come invece
imposto dal comando ^From:.*tizio@caio\.it
.*	è un "jolly" che identifica "qualunque sequenza di caratteri". Il
	punto da solo è un jolly che sostituisce qualunque carattere, ma 
	uno solo. L'asterisco lo "replica" e permette che possa essere
	un numero qualunque.
Sempre per fare un esempio:
From:ti...@caio.it
		<- incontra la regola;
From: 
ti...@caio.it
		<- incontra la regola;
From: 
att...@caio.it
		<- incontra la regola, poiché .* può
				   sostituire anche " at";
\.it	se vuoi indicare caratteri speciali che facciano parte del testo,
	come \ $ % & # . e simili, devi precederli con \, altrimenti
	vengono considerati come comandi!
caio\.it significa quindi strettamente "
caio.it
", mentre se tu avessi
indicato 
From:ti...@caio.it
, questa regola avrebbe compreso anche (per
esempio) i mittenti: tizio@caiolit, tizio@caiobit e così via.
Il . comunque fa da "separatore", per quel che ho visto, cioè se metto
come regola:
^From:tizio@caio
questa mi incontra SIA 
ti...@caio.it
, CHE tizio@caio e basta, così come
ti...@caio.com
 o 
ti...@caio.net
. Non ti so però dire se verrebbe
incontrato anche tizio@caione, è una prova che non ho mai fatto.
Quest'ultima, però è una mia interpretazione, quel che son sicuro è che
tizio@caio riconosce anche 
ti...@caio.it
.
Da ultima segue la "destinazione" delle mail: nel nostro esempio, tutta la
posta che incontrava il filtro impostato (cioè aveva un header che avesse
il campo From: 
ti...@caio.it
) veniva smistata nella mbox
~/Mail/posta_da_tizio.
Ora ti faccio qualche esempio pratico (premetto che potrei dire delle
cavolate, eh!!! Mi baso sulle prove che ho fatto, e su quello che ho
capito, non prendere le cose per oro colato!):
:0
* ^From:.*info@100links
~/Mail/100links
Queste righe (in .procmailrc) fanno sì che la posta che arriva da
in...@100links.com
 (una mailing list) vengano smistate immediatamente nella
mbox dedicata.
:0
* ^From:.*rn@usa\.net
/dev/null
Questo invece è un "kill filter", infatti la posta che arriva da
r...@usa.net
 viene "distrutta" (infatti va a /dev/null, che in linux è il
"cestino senza ritorno").
0:
* ^Subject:.*windows.*virus
~/Mail/sicurezza_win
I messaggi che hanno nel subject le parole 'windows' e 'virus'
(attenzione, in questo caso è importante l'ordine: "virus in windows" NON
incontra il filtro, mentre "windows, nuovo virus" SI!) vengono smistati
nella mbox "sicurezza_win".
Come vedi, in realtà farsi un filtro è abbastanza facile, se uno non ha
pretese di complicazioni assurde, ma si vuole limitare a smistare un po'
la propria posta sulla base di quei 2-3 headers "consueti" (To:, From:,
Subject:) e di pochi criteri.
Tieni presente che la potenza di questo sistema è pressoché infinita, se
leggi i vari man procmail, man procmailrc, man procmailex e man egrep
trovi cose incredibili, si può addirittura fare in modo che alla ricezione
di mail con un certo argomento, il computer risponda automaticamente con
frasi adeguate o messaggi informativi che p.e. dicono che non siamo a casa
fino alla settimana successiva o robe simili.
A noi italiani poveri sfigati col modem e gli scatti interessa poi
relativamente, visto che se uno è fuori casa in genere ha il pc spento o
comunque NON collegato... :-(((
Ma giusto per dire l'incredibile potenza di questo sistema.
