Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 873

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Posta Off-Line HOW-TO: Ricevere la posta</TITLE>
 <LINK HREF="Posta-Offline-HOWTO-3.html" REL=next>
 <LINK HREF="Posta-Offline-HOWTO-1.html" REL=previous>
 <LINK HREF="Posta-Offline-HOWTO.html#toc2" REL=contents>
</HEAD>
<BODY>
<A HREF="Posta-Offline-HOWTO-3.html">Avanti</A>
<A HREF="Posta-Offline-HOWTO-1.html">Indietro</A>
<A HREF="Posta-Offline-HOWTO.html#toc2">Indice</A>
<HR>
<H2><A NAME="s2">2. Ricevere la posta</A></H2>

<P> Molti ISP oggi forniscono accesso alla mailbox tramite il protocollo
POP3. In questo documento tratteremo unicamente tale protocollo dato che gli
altri sono usati meno spesso. Inoltre non ci addentreremo nei dettagli di
tale protocollo in quanto non &egrave; compito di questo documento farlo.
<P>Volendo descrivere in breve il protocollo POP3 potremmo dire che il
server &egrave; in costante ascolto sulla porta TCP/IP 110. Nel momento in
cui c'&egrave; una connessione da parte di un client su tale porta, il
server richiede un'autenticazione (generalmente del tipo <I>nome utente +
password</I> in chiaro), quindi da accesso alla mailbox tramite una serie di
comandi che servono principalmente a
<P>
<UL>
<LI>controllare quanti e quali messaggi si trovano nella mailbox</LI>
<LI>prelevare i messaggi</LI>
<LI>cancellare i messaggi</LI>
</UL>
<P>In genere queste operazioni vengono svolte tutte in modo automatico da un
apposito software. Vediamo quali tra questi sono i pi&ugrave; usati e come
configurarli.
<P>
<H2><A NAME="ss2.1">2.1 Popclient</A>
</H2>

<P> L'ultima versione di popclient &egrave; prelevabile via ftp da 
<A HREF="ftp://sunsite.unc.edu/pub/Linux/system/Mail/pop">sunsite.unc.edu</A>. Nel momento in cui scrivo la versione corrente
&egrave; la 3.0 ed il file relativo si chiama <CODE>popclient-3.0.tar.gz</CODE>.
<P>Per un'uso base di popclient basta chiamarlo con le seguenti opzioni:
<P>
<BLOCKQUOTE><CODE>
popclient -3 -u utente -p password -o /path/per/la/mia/mailbox
nomehost
</CODE></BLOCKQUOTE>
<P>Dunque, vediamo un po' di analizzare questa linea di comando:
<P>
<UL>
<LI><CODE>-3</CODE> sta ad indicare che usiamo il protocollo POP3;</LI>
<LI><CODE>-u</CODE> deve essere seguito dal nostro nome-utente (il login);</LI>
<LI><CODE>-p</CODE> deve essere seguito dalla nostra password sull'host remoto;</LI>
<LI><CODE>-o</CODE> indica il percorso completo per la nostra mailbox (il file dove si
trova la posta sul nostro computer, non quello remoto). Di solito il
percorso &egrave; <CODE>/var/spool/mail/nome-utente</CODE> dove
<CODE>nome-utente</CODE> &egrave; il nostro login sulla macchina Linux locale;</LI>
<LI><CODE>nomehost</CODE> deve essere sostituito dal nome del server POP3.</LI>
</UL>
<P>Facciamo un esempio:
<P>Il mio nome-utente &egrave; <CODE>pippo</CODE>, la password <CODE>baudo</CODE>, la mia mailbox
sulla macchina locale si trova sotto <CODE>/var/spool/mail/pippo</CODE> ed il
nome dell'host cui devo collegarmi per prelevare la posta &egrave;
<CODE>katia.rai.it</CODE> ... dunque:
<P>
<BLOCKQUOTE><CODE>
popclient -3 -u pippo -p baudo -o /var/spool/mail/pippo
katia.rai.it
</CODE></BLOCKQUOTE>
<P><CODE>popclient</CODE> per default cancella la posta sull'host remoto dopo averla
scaricata. Per disabilitare questa funzione aggiungi <CODE>-k</CODE> tra le opzioni.
<P>Come mi ha fatto giustamente notare Alberto Menegazzi (flash.egon@iol.it),
<CODE>fetchmail</CODE> sostituisce <CODE>popclient</CODE>, dal quale deriva. E' anche bene
fare presente che <CODE>fetchmail</CODE>, a differenza di <CODE>popclient</CODE>, ha bisogno
di un MDA locale per cui, se abbiamo modificato la configurazione di
<CODE>sendmail</CODE> per l'uso della coda (come spiegato successivamente), ci
troveremmo in difficolt&agrave; e l'unica soluzione consiste nell'interfacciare
<CODE>fetchmail</CODE> a <CODE>procmail</CODE> inceve che a <CODE>sendmail</CODE>. Scusa il giro di
parole :)
<P>Per interfacciare direttamente <CODE>popclient</CODE> a <CODE>procmail</CODE> dobbiamo usare
l'opzione <CODE>-c</CODE> invece di <CODE>-o</CODE> per cui un esempio di sintassi corretta
potrebbe essere:
<P>
<BLOCKQUOTE><CODE>
popclient -3 -u pippo -p baudo -c katia.rai.it | procmail
</CODE></BLOCKQUOTE>
<P>Per ulteriori spiegazioni:
<P>
<UL>
<LI>lanciare <CODE>popclient</CODE> senza opzioni per avere un elenco delle
opzioni passabili da linea di comando;</LI>
<LI><CODE>man popclient</CODE> per avere una descrizione dettagliata di tutte
le funzioni.</LI>
</UL>
<P>
<H2><A NAME="ss2.2">2.2 Fetchpop</A>
</H2>

<P> L'ultima versione di fetchpop &egrave; prelevabile via ftp da 
<A HREF="ftp://sunsite.unc.edu/pub/Linux/system/Mail/pop">sunsite.unc.edu</A>. Nel momento in cui scrivo la versione corrente
&egrave; la 1.9 (ci sono gi&agrave; in giro delle patch per risolvere alcuni
bug di questa versione) ed il file relativo si chiama
<CODE>fetchpop1.9.tar.gz</CODE>.
<P>Uno dei vantaggi di fetchpop consiste nella possibilit&agrave; di essere
interfacciato direttamente a procmail (maggiori dettagli su procmail
successivamente) usando l'opzione <CODE>-p</CODE> sulla linea di comando.
<P>Per poter usare <CODE>fetchpop</CODE> dovremo farlo partire una prima volta senza
parametri sulla linea di comando. Ci verranno chiesti nell'ordine: indirizzo
del server POP3, login e password sul server POP3, tempo di
inattivit&agrave; espresso in secondi che passa prima di controllare
nuovamente l'arrivo di nuova posta quando <CODE>fetchpop</CODE> viene lanciato come
daemon (opzione <CODE>-d</CODE>). All'ultima domanda rispondere con 300 che &egrave;
il valore minimo specificabile, tanto dal momento che usiamo la posta
off-line non useremo mai l'opzione <CODE>-d</CODE>. Non fate caso all'errore che si
verifica dopo aver inserito quest'ultimo parametro: &egrave; normale in
quanto fetchpop cerca di collegarsi al server POP3 e non ci riesce (a
meno che non siamo collegati in quel momento).
<P>A questo punto <CODE>fetchpop</CODE> si &egrave; creato un file nella nostra home directory
chiamato <CODE>.fetchhost</CODE> dove risiedono le informazioni che gli abbiamo dato
in questa prima fase. D'ora in poi sar&agrave; sufficiente essere collegati alla
rete e chiamare <CODE>fetchpop</CODE> con le opzioni <CODE>-r</CODE> e <CODE>-a</CODE> per poter
ricevere la nostra posta, inclusi i messaggi eventualmente gi&agrave; letti
(opzione <CODE>-a</CODE>) e, allo stesso tempo, rimuovere i messaggi sul server dopo
averli prelevati (opzione <CODE>-r</CODE>).
<P>Quindi la sintassi corretta sar&agrave;:
<P>
<BLOCKQUOTE><CODE>
<PRE>
fetchpop -a -r
</PRE>
</CODE></BLOCKQUOTE>
<P>e, nel caso vogliamo usare procmail:
<P>
<BLOCKQUOTE><CODE>
<PRE>
fetchpop -a -r -p
</PRE>
</CODE></BLOCKQUOTE>
<P>Per ulteriori spiegazioni:
<P>
<UL>
<LI>lanciare <CODE>fetchpop -h</CODE> per avere un elenco delle opzioni su linea
di comando;</LI>
<LI><CODE>man fetchpop</CODE> per avere una descrizione dettagliata di tutte
le funzioni.</LI>
</UL>
<P>
<H2><A NAME="ss2.3">2.3 Fetchmail</A>
</H2>

<P> Probabilmente in questo momento <CODE>fetchmail</CODE> &egrave; il migliore client
in circolazione. Ritengo giusto tradurre e riportare le parti salienti del
file README:
<P>
<BLOCKQUOTE><CODE>
<PRE>
----------------------------------------------------------------------------
fetchmail &egrave; un programma di utilit&agrave; per il forwarding/prelievo
della posta con POP2, POP3, APOP e IMAP, completo, robusto e ben
documentato, inteso per essere usato su collegamenti TCP/IP su-richiesta
(come connessioni SLIP o PPP). Esso preleva la posta da server remoti e la
invia al sistema di smistamento locale della tua macchina, in modo da
permettere a MUA come elm o Mail di leggerla.

Questa sono le caratteristiche principali di fetchmail. Quelle uniche di
fetchmail sono marcate con **.

*  Supporto per i protocolli **POP2, POP3, **APOP, **IMAP.

** Supporto Kerberos per l'autenticazione dell'utente.

** La macchina viene auto-scandagliata in modo da trovare un server
funzionante se non &egrave; stato specificato alcun server per la
connessione. Cos&igrave; non hai bisogno di sapere in anticipo quali tipi di
server stanno girando sulla macchina; l'opzione verbose ti pu&ograve;
mostrare quale sta funzionando.

** Smistamento tramite SMTP alla porta 25 della macchina client. Questo
significa che la posta viene automaticamente inviata all'MDA locale come se
fosse normalmente arrivata dall'esterno via SMTP.

** Timeout se la connessione con il server viene a mancare.

** Supporto per prelevare e forwardare da caselle postali multiple che
garantisce di non causare loop con la posta.

*  Semplice controllo tramite linea di comando o file di controllo di
esecuzione libero-dal-formato.

*  Modo Daemon -- fetchmail pu&ograve; essere lanciato in background per
richiedere la posta da uno o pi&ugrave; server ad un intervallo specificato.

*  Gli header From:, To:, Cc:, e Reply-To: sono riscritti in modo che nomi
utenti relativi alla macchina di fetchmail diventino indirizzi Internet
completamente qualificati (l'originale Inglese rende meglio: fully-qualified
Internet addresses, ndt). Questo fa in modo che le risposte funzionino
correttamente. (Sarebbe stata una funzione unica di fetchmail se non
l'avessi aggiunta a fetchpop).

*  Stretto rispetto degli RFC rilevanti e buone opzioni di debugging.
Potresti usare fetchmail per fare un debug sulle implementazioni di un
server.

*  Pagina di manuale scritta con cura, comprensiva ed aggiornata, la quale
descrive non solo i modi di operazione ma anche (**) come diagnosticare i
problemi pi&ugrave; comuni e cosa fare riguardo server deficienti.

*  Codice sorgente a prova di bomba, semplice e ben sperimentato -- l'autore
ne fa uso tutti i giorni e non ha mai perso un messaggio, anche nelle
versioni sperimentali.

*  Larga comunit&agrave; di utenti -- fetchmail ha ereditato una
significativa base di utenti dalla comunit&agrave; di popclient, scritto da
Carl Harris. Questo significa che il feedback &egrave; rapido e i bachi sono
scovati e corretti rapidamente.

Puoi facilmente prelevare l'ultima versione di fetchmail via FTP da:

        ftp://ftp.ccil.org/pub/esr/fetchmail-1.9.tar.gz

Oppure puoi prelevarla dalla home page dell'autore:

        http://www.ccil.org/~esr
----------------------------------------------------------------------------
</PRE>
</CODE></BLOCKQUOTE>
<P>Bene, spero di averti convinto che <CODE>fetchmail</CODE> vale la pena di essere
usato nei casi in cui un semplice client POP non &egrave; sufficiente.
<P>In ogni caso tieni presente il problema gi&agrave; accennato alla fine della
sezione relativa a <CODE>popclient</CODE>: <CODE>fetchmail</CODE> ha bisogno di un MDA
locale per consegnare la posta quindi, se hai configurato <CODE>sendmail</CODE> per
l'uso della coda (opzione defer), dovrai usare <CODE>procmail</CODE> come MDA.
Inoltre alcuni server POP recenti non implementano pi&ugrave; il comando LAST (gli
utenti di Italia On Line lo sanno bene) per cui per loro si impone l'uso di
<CODE>fetchmail</CODE>.
<P>Se hai scaricato il pacchetto con i sorgenti dall'URL indicato qui sopra,
allora probabilmente vorrai installarlo. Niente di pi&ugrave; semplice!
L'autore di fetchmail &egrave; un hacker riconosciuto 
<BLOCKQUOTE>attenzione a
non confondere la parola hacker con cracker!</BLOCKQUOTE>
 e, come tale, sa
come rendere pi&ugrave; facile la vita di quelli che non lo sono :)
<P>Facciamo un <CODE>cd /usr/src</CODE> e un <CODE>tar vxzf
/percorso/per/fetchmail-1.9.tar.gz</CODE> in modo da ritrovarci il pacchetto
originale scompattato sotto <CODE>/usr/src/fetchmail-1.9</CODE>
<P>Ora entriamo nella directory di <CODE>fetchmail</CODE> e digitiamo
<CODE>configure</CODE>
<P>Lo script far&agrave; un po' di ricerche sulle caratteristiche del nostro
sistema e, alla fine, ci riporter&agrave; al prompt. Dopo esserci assicurati
che il nostro sistema abbia flex versione 2.5.3 o maggiore (&egrave;
necessario per la compilazione) scrivamo semplicemente <CODE>make</CODE>
<P>La compilazione dura molto poco (sul mio P60 con 16MB di RAM meno di un
minuto). A questo punto basta diventare root e digitare <CODE>make
install</CODE> per installare il programma in <CODE>/usr/local/bin</CODE> e la
pagina di manuale in <CODE>/usr/local/man/man1</CODE>. Per cambiare queste
directory bisogna modificare il Makefile dopo aver lanciato
<CODE>configure</CODE> e prima di aver fatto partire la compilazione con
<CODE>make</CODE>.
<P>Per finire dobbiamo andarci a creare il file <CODE>~/.fetchmailrc</CODE>
dandogli i giusti permessi con:
<P>
<BLOCKQUOTE><CODE>
<PRE>
chmod go-rwx,u=rw ~/.fetchmailrc
</PRE>
</CODE></BLOCKQUOTE>
<P>Un esempio di <CODE>~/.fetchmailrc</CODE> &egrave;:
<P>
<BLOCKQUOTE><CODE>
<PRE>
poll host_remoto with protocol POP3:
    user tizio there with password secret1 is caio here;
</PRE>
</CODE></BLOCKQUOTE>
<P>In questo modo stiamo dicendo a <CODE>fetchmail</CODE> di usare tutti i default
(leggi la pagina di manuale al riguardo) e collegarsi al server
<I>host_remoto</I> per prelevare tramite il protocollo POP3 la posta di
<I>tizio</I>, il quale ha come password <I>secret1</I> e sulla macchina locale
ha come login <I>caio</I>.
<P>Per ulteriori spiegazioni:
<P>
<UL>
<LI><CODE>fetchmail --help</CODE> per avere un elenco delle opzioni su
linea di comando;</LI>
<LI><CODE>man fetchmail</CODE> per avere una descrizione dettagliata di tutte
le funzioni.</LI>
</UL>
<P>
<H2><A NAME="ss2.4">2.4 Smistare la posta in arrivo, ovvero procmail</A>
</H2>

<P> Nell'ambito della gestione della posta off-line, procmail pu&ograve;
rivelarsi di estremo aiuto nel caso in cui il volume di email quotidiano
superi il normale (non &egrave; raro che si verifichi un caso simile: basta
iscriversi ad un paio di mailing list dal traffico intenso).
<P>Procmail pu&ograve; smistare automaticamente la posta nei folder appropriati
filtrando in base a qualsiasi parte di un messaggio (intestazione, uno dei
campi dell'intestazione, corpo del messaggio, ecc) oppure pu&ograve; inviarla in
pasto (ovvero tramite un pipe) ad un altro programma che potrebbe occuparsi
ad esempio di archiviare i messaggi secondo un certo criterio e magari
inserendo dei campi opportuni per determinati scopi... insomma le
possibilit&agrave; sono davvero infinite, l'unico limite &egrave; la fantasia.
<P>Per dire a procmail come smistare la posta andiamo a crearci il file
<CODE>~/.procmailrc</CODE>
<P>Il file <CODE>~/.procmailrc</CODE> &egrave; composto da una serie di regole. Per
semplificare le cose, diciamo che ogni regola inizia con una riga contenente
<CODE>:0</CODE> seguita da una o pi&ugrave; righe che descrivono una condizione (tali
righe iniziano con un asterisco seguito da una espressione regolare estesa
compatibile con <CODE>egrep</CODE>), quindi da un'altra riga che descrive l'azione
da compiere se le condizioni sono verificate. Vediamo un esempio pratico:
<P>
<BLOCKQUOTE><CODE>
<PRE>
:0
* ^From.*tizio
* ^Subject:.*patagarro
patagarro
</PRE>
</CODE></BLOCKQUOTE>
<P>Se il messaggio viene da <I>tizio</I> ed ha come soggetto <I>patagarro</I>,
allora mettilo nella mailbox <I>patagarro</I>. Altro esempio:
<P>
<BLOCKQUOTE><CODE>
<PRE>
:0:
* Pluto-meeting
`date +%m-%y`/Pluto-meeting
</PRE>
</CODE></BLOCKQUOTE>
<P>Se gli header del messaggio contengono la parola magica <I>Pluto-meeting</I>
allora mettili in una folder che ha come nome la data corrente nel formato
mese-anno pi&ugrave; <CODE>/Pluto-meeting</CODE>
<P>
<BLOCKQUOTE><CODE>
<PRE>
:0
* From.*print-server
| lpr
</PRE>
</CODE></BLOCKQUOTE>
<P>In questo caso i messaggi provenienti da <I>print-server</I> vengono inviati
direttamente in pasto alla stampante.
<P>Per ulteriori spiegazioni:
<P>
<UL>
<LI><CODE>man procmail</CODE> per avere una descrizione dettagliata di tutte
le funzioni</LI>
<LI><CODE>man procmailrc</CODE> per avere una descrizione del formato del file
<CODE>~/.procmailrc</CODE></LI>
<LI><CODE>man procmailex</CODE> per avere una serie di esempi da usare nel
file <CODE>~/.procmailrc</CODE></LI>
<LI><CODE>man grep</CODE> per avere una descrizione delle espressioni regolari
estese compatibili con <CODE>egrep</CODE></LI>
</UL>
<P>
<H2><A NAME="ss2.5">2.5 Un cenno su IMAP</A>
</H2>

<P> Come avevo gi&agrave; accennato nell'introduzione, &egrave; mia intenzione parlare per
il momento solo di POP3. Ma voglio fare una piccola eccezione e farvi
leggere questo articolo molto interessante scritto da Luca Polo e da me
pescato su <CODE>it.comp.linux</CODE>:
<P>
<BLOCKQUOTE><CODE>
<PRE>
----------------------------------------------------------------------------
> Mi avete incuriosito :-) Cos'&egrave; l'IMAP 4?

Diamine, ma &egrave; soltanto il buon vecchio Internet Message Access
Protocol versione 4!! :-)

Praticamente un super-superset di POP, ma pi&ugrave; orientato verso un
effettivo client-server (con POP si ha un download, punto), supporto
multi-client (io leggo la posta da pi&ugrave; macchine in posti diversi),
multi-server, ecc.

Un altro punto di forza sta nel fatto che &egrave; il server IMAP a gestire
MIME &amp; Co. (client molto pi&ugrave; semplici, e inoltre c'&egrave; solo
una macchina da tenere aggiornata); inoltre, mediante il protocollo 
ACAP in fase di sviluppo alla Carnegie Mellon, anche i file di
configurazione (personalizzazioni, bookmark, alias) possono risiedere 
sul server, cos&igrave; anche loro risultano indipendenti dalla singola
macchina.

La pacchia degli amministratori di sistema, insomma... :-P

Poi... beh, guardatevi http://www.imap.org/

L&igrave; c'&egrave; tutto, compresi tutti i client conosciuti o in fase di
sviluppo; poi ditemi se non vale la pena tenerlo d'occhio... BTW, i server
IMAP di mia conoscenza sono anche POP server (alcuni dicono che siano
perfino molto meglio del "classico" qpopper).

Saluti,
Luca Polo
-- 
 / Luca Polo   : jake@gest.unipd.it    || System administrator          \
| (http://www.gest.unipd.it/~jake for  || Ist. di Ingegneria Gestionale  |
 \ address and phone numbers)          || Universita` di Padova, Italy  /
----------------------------------------------------------------------------
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>
<HR>
<A HREF="Posta-Offline-HOWTO-3.html">Avanti</A>
<A HREF="Posta-Offline-HOWTO-1.html">Indietro</A>
<A HREF="Posta-Offline-HOWTO.html#toc2">Indice</A>
</BODY>
</HTML>