28.05.2013 Views

LOA HackLab - Autistici

LOA HackLab - Autistici

LOA HackLab - Autistici

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

124 C8 Il mondo là fuori<br />

cos è più facile capire cosa successo durante il donwload delle mail.<br />

Giochi di prestigio con procmail 8.3.8<br />

In questa sezione analizziamo assieme alcuni degli esempi che si trovano nella manpage<br />

procmailex. Cominciamo con questo semplice esempio:<br />

:0<br />

* ^From.*peter<br />

* ^Subject:.*compilers<br />

{<br />

:0 c<br />

! william@somewhere.edu<br />

}<br />

:0<br />

petcompil<br />

la prima riga (:0) comincia la recipe, seguita da due conditions. Al posto di action,<br />

troviamo una parentesi graffa che comincia un blocco che specifica cosa fare delle email<br />

con due diverse actions. La prima action (:0 c) serve per creare una copia (proprio una<br />

carbon copy) della mail e a forwardarla (!) a william, la seconda invece semplicemente<br />

manda la mail nella mailbox petcompil.<br />

Altro esempio:<br />

:0 hwc:<br />

* !^FROM_MAILER<br />

| gzip >>headc.gz<br />

(:0 hwc:), dice di inviare l’header della mail al programma specificato due righe dopo con<br />

il | (gzip) (h), aspettando che il programma specificato completi la sua operazione (w)<br />

e facendo una carbon copy della mail (c). Come condition, vogliamo tutte le email che<br />

non provengono dal postmaster (notate il ! iniziale). L’action è appunto un pipe a gzip.<br />

A che serve questa ricetta? Semplicemente crea un archivio (headc) con tutti gli header<br />

delle mail che vi arrivano (a questo punto potremmo discutere lungamente sull’utilit di<br />

tutto ci :-).<br />

Ultimo esempio, sul reply automatico.<br />

:0 h c<br />

* !^FROM_DAEMON<br />

* !^X-Loop: your@own.mail.address<br />

| (formail -r -I"Precedence: junk" \<br />

-A"X-Loop: your@own.mail.address" ; \<br />

echo "Mail received.") | $SENDMAIL -t<br />

Niente di strano fino al pipe (vegono esclusi i messaggi del postmaster e i propri), ed<br />

inviato l’header al programma del pipe. formail un programma che vi permette di fare<br />

tante belle cose, tra cui inviare delle mail da riga di comando. Non mi soffermer su formail,<br />

perch esula dagli scopi di questa versione del capitolo. Al di l del comando utilizzato,<br />

voglio sottolineare l’uso del doppio pipe, e della variabile SENDMAIL. SENDMAIL fa

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!