Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Indice
1 Introduzione
2 Protocolli di posta
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 5
. 5
. 5
. 6
. 6
. 6
. 7
. 7
. 8
. 9
. 9
. 10
. 11
. 12
3 Il problema e la soluzione
.
.
.
.
.
.
.
2
2
3
3
3
4
4
4 Ringraziamenti
12
5 Nota Legale
12
1 Introduzione
Sempre pi spesso i provider cominciano a permettere l'accesso alle proprie
caselle di posta elettronica tramite i server POP3 ed IMAP solo quando si
connessi tramite loro, permettendo l'accesso dall'esterno solo tramite la spesso
scomoda WebMail.
Per poter aggirare queste restrizioni, sono stati ideati progetti quali FreePOPs![1]
che si occupa del parsing delle pagine della webmail simulando un server POP3
locale. Per quanto questa soluzione in genere funzioni, non sicuramente la pi
performante, e in alcuni casi pu essere abbastanza inutile. Per esempio quando
eettivamente si utilizza una connessione casalinga col provider in oggetto, ma
si ha a disposizione un portatile con cui ci si collega anche dall'esterno.
Questo articolo vuole proporre una soluzione a questo problema, utilizzando
software libero, senza andare ad abusare dei servizi forniti dai provider. Il
risultato sar un accesso illimitato alla propria posta da ovunque si vorr.
2 Protocolli di posta
Senza voler scendere nel dettaglio tecnico, possiamo dire che esistono principalmente tre protocolli che si occupano di posta elettronica: SMTP [2], POP3[3] e
IMAP4[4].
Mentre il primo si occupa dell'invio e del transito della posta no al server del
provider di destinazione, gli ultimi due sono stati creati per permettere la lettura della posta elettronica con dei client di posta, e come si pu notare dalla
data di pubblicazione, sono molto pi recenti del primo. Vedremo pi avanti il
motivo di questo distacco.
2.1
Una volta che il messaggio stato ricevuto dall'MTA del server del destinatario,
il suo tragitto sugli MTA (solitamente) nito. A questo punto il software si
1 Un
hostname che viene risolto di volta in volta con un diverso IP scelto tra una lista di
Delivery Agent ).
Alcuni MTA implementano anche l'MDA nello stesso programma, ma, come ogni utente di sistemi Unix-Like sa, un software specializzato spesso pu
fornire molte pi opzioni, quindi praticamente ogni MTA moderno permette di
sostituire il proprio MDA con un altro software. Nel caso di Courier-MTA, l'MDA fornito MailDrop, disponibile anche come software a se stante, ma molto
spesso questo viene accoppiato con procmail.
Nei primi anni della grande rete, quando la posta elettronica veniva solitamente
usata dagli utenti locali dei computer, per leggere la posta bastava utilizzare un
client che andasse a leggere il proprio mbox, sulla macchina locale (o eventualmente dallo share NFS del server di posta nel caso di terminali, per esempio
nelle universtit).
Col passare degli anni per la posta elettronica diventata un servizio oerto al pubblico da grandi provider, che ovviamente non potevano fornire utenze
all'interno dei propri server per poter leggere la posta direttamente. Per risolvere questo problema, venne ideato il protocollo POP (Post Oce Protocol ), la
cui prima incarnazione[6] vede la luce nell'ottobre del 1984. A questa seguirono
3
3 Il problema e la soluzione
Come abbiamo visto, uno dei problemi maggiori che si possono avere quando si
possiede pi di un computer, ed uno un portatile o per esempio nel proprio
ucio (o in ogni caso in una rete diversa da quella del proprio provider) quello
4
Per poter applicare con successo questa soluzione c' sicuramente una necessit
hardware da soddisfare: una macchina collegata ad Internet 24 ore su 24 (o
quasi, in ogni caso collegata nel momento in cui si vuole controllare la propria
posta dall'esterno).
Le richieste software sono abbastanza vaghe in realt: il computer che far
da server deve disporre di un sistema operativo Unix-like, come pu essere Linux, ma anche OpenBSD, FreeBSD, Solaris e chi pi ne ha pi ne metta possono
funzionare (io ho avuto esperienza diretta usando Gentoo Linux e OpenBSD).
poi necessario avere i seguenti pacchetti: fetchmail, maildrop e courier-imap.
Opzionalmente possibile utilizzare bogolter o spamassassin. Maildrop e
Courier-Imap fanno entrambi parte della suite Courier, che comprende per
anche un MTA, un server POP3 e una webmail, che non ci interessano al
momento.
Inoltre per poter accedere alla vostra macchina dall'esterno senza conoscerne
di volta in volta l'IP, vi consiglio di dotarvi di un hostname dinamico come quelli
forniti da dyndns.org, e di un client che si occupi dall'aggiornamento automatico
dello stesso.
3.2
Scelte pratiche
3.2.4 Webmail
Poich non sempre ho a disposizione una connessione di rete per il portatile
quando posso navigare ad Internet (molto spesso navigo per esempio dall'universit), ho voluto installarmi anche una webmail che si colleghi al nuovo server
per poter leggere le mie email con comodit.
Anche per questa funzione ho scelto un software libero, SquirrelMail, un'applicazione PHP, avviata su un Apache congurato come server HTTP sicuro
(SSL).
Ho deciso di non utilizzare sqwebmail perch non mi piacciono i CGI e preferisco
darmi di PHP quando possibile.
3.3
Raccogliere la posta
In questo caso si dice a fetchmail che deve raccogliere la posta dal server pop3.provider.tld usando il protocollo POP3, e che la posta dell'utente
utente@provider.tld sul server, accessibile con la password segreto, deve essere
inviata all'utente locale localuser, scaricando anche la posta segnata come gi
letta.
Questo per farebbe s che fetchmail prenda e tenti di collegarsi ad un MTA
locale, usando SMTP, e tenti di inviare i messaggi per l'utente localuser. Non
quello che vogliamo per, perch in tal caso dovremmo impostare anche un
MTA ed un problema da non sottovalutare.
In soccorso ci arriva l'opzione mda di fetchmail, cambiamo quindi la riga di
congurazione generale con questa:
poll pop3.provider.tld with proto POP3
user 'utente@provider.tld' there with password 'segreto'
is 'localuser' here options fetchall
mda "/usr/bin/maildrop -d localuser"
Incasellare la posta
Se non trovate un identicatore che sia sempre unico per la mailing list, ma
dovete per esempio vericare l'header To:, cercandoci una sottostringa, potete
usare una regular expression del tipo /To:.*mailinglist@dominio.tld.*/.
nostro stesso provider. Per liberarsi da tale spam, basta aggiungere qualche
semplice regola al nostro script di maildrop.
Prendiamo per esempio caso di voler cancellare tutto il traco in arrivo
da un determinato indirizzo email, poniamo caso sia newsletter@provider.tld .
Trasformiamo quindi il nostro script in questo:
if ( /From:.*newsletter@provider.tld.*/ )
exit
if ( /X-BeenThere: wine-devel@winehq.org/ )
to "Maildir/.wine-devel"
to "Maildir"
A questo punto tutti i messaggi ricevuti da quell'indirizzo saranno semplicemente ignorati (exit dice a maildrop di non processare il messaggio, e non
arrivando a nessun to, semplicemente viene cancellato).
Come vedete le regole le sto inserendo una sopra l'altra, facendo in modo che
quelle che sfoltiscono i messaggi siamo poste prima delle altre, accorciando la
quantit di test che devono essere eettuati prima di consegnare il messaggio.
Tenete bene in testa questa cosa, perch il prossimo passo l'inserire un ltro
che permette di classicare i messaggi come probabile spam.
Maildir/.Junk Mail
molto pratico della sua congurazione, che ho lasciato ai default, e non saprei proprio come spiegarlo, quindi mi limito ad inserire la regola da utilizzare,
similmente a Bogolter in precedenza, prima del to nale:
xfilter "/usr/local/bin/spamassassin"
if (/^X-Spam-Flag: *YES/)
{
to "Maildir/.Junk Mail"
}
Questa riga non fa altro che inviare tutte le email che riescono a giungere
ad essa nello script all'indirizzo indicato utilizzando sendmail (si suppone che il
comando sendmail nel sistema funzioni correttamente).
Solitamente inserisco questa regola dopo le regole statiche per lo spam conosciuto e prima di quelle delle mailing list, per poter ricevere tutta la posta che
potrebbe non essere spam.
11
3.6
e il gioco fatto.
4 Ringraziamenti
Il pi grande ringraziamento per questo documento va sicuramente a Fabio
FVZ per i chiarimenti riguardo al funzionamento e alla terminologia dei servizi
di posta elettronica.
Desidero inoltre ringraziare Bernardo inquis per avermi spinto a scrivere questo
articolo.
5 Nota Legale
c 2004 Diego Petten.
Copyright
Questo testo distribuito dall'autore sotto la CCPL secondo le norme indicate
all'indirizzo http://creativecommons.org/licenses/by-nc-sa/2.0/it/deed.it.
Riferimenti bibliograci
[1] http://freepops.sourceforge.net/
[7] Introduzione
sulla
homepage
http://bogolter.sourceforge.net/
12
di
Bogolter: