Posta a manovella
Da MontelLUG WIKI.
Menu | ||
---|---|---|
MontelLUG frontpage | ||
Aiuto: Come modificare le pagine | ||
Torna indietro |
Vediamo una classica configurazione della posta per una macchina casalinga con
connessione dial-up fatta su una macchina Debian.
Useremo i seguenti strumenti: exim (il server mail predefinito Debian)
o in alternativa esmtp (un MTA leggero),
fetchmail (per scaricare la posta dal proprio account), procmail
(per smistare la posta prelevata fra diverse mbox) e mutt (per leggere, scrivere
e archiviare le mail).
Exim
Innanzitutto configuriamo il server mail perché si occupi di gestire la posta
locale e perché usi il server mail del nostro provider per spedire la posta
esterna.
Questo va fatto perché molti siti rifiutano la posta da "sconosciuti" perché
potenziale spam e perché altrimenti una mail da 1 Mb spedita a 10 persone
ruberebbe 10 Mb della nostra banda, anziché 1...
Digitare:
# dpkg-reconfigure exim4-config
e scegliere come Tipo di configurazione del sistema di posta il valore
posta inviata tramite uno smarthost; ricevuta via SMTP o fetchmail
e quando chiede di inserire il nome host del sistema a cui viene inviata la
posta in uscita mettere il proprio server smtp (per es. mail.provider.it).
Alle altre domande lasciare il valore di default.
A questo punto possiamo spedire mail interne agli utenti del nostro computer (noi compresi), cosa utile il piú delle volte perché molti programmi di controllo usano le mail per notificare errori o paranoie varie.
Esmtp
esmtp è un MTA fatto apposta per chi spedisce la posta tramite un relay server.
Al momento dell'installazione con apt-get vengono chiesti il server esterno,
il nome dell'account e la password.
Volendo si possono gestire più identità con diversi server.
esmtp si occupa sia di spedire la posta esterna che di passare al procmail la posta interna,
senza tenere aperta la porta 25 del computer.
Fetchmail
Il fetchmail si occupa di prendere la posta dal nostro account mail da qualche parte e rispedirla al nostro utente locale passandola all'exim. Si può fare un file di configurazione globale in cui ci sono gli account di tutti gli utenti del computer in modo che vengano prelevate le mail di tutti in un colpo solo o un file per ogni utente che dovrà arrangiarsi a lanciare il fetchmail.
Vediamo entrambe le configurazioni nel caso di un protocollo POP3 criptato
File locale
Basta creare un file nella propria home chiamato .fetchmailrc cosí fatto:
set bouncemail set no spambounce set properties "" poll popmail.provider.it with proto POP3 user 'nome-esterno' there with password 'pippo' is 'nome-locale' here options fetchall ssl
Volendo si può usare il programma fetchmailconf che lo genera automaticamente
dopo qualche domanda...
N.B. Il fetchmail passa la porta al server mail locale tramite la porta 25. Se si usa l' estmp
è quindi necessario dirgli di passarla direttamente al sendmail, aggiungendo questa riga in testa al
.fethmailrc
defaults mda "/usr/bin/esmtp -f %F %T"
A questo punto basta scrivere
$ fetchmail
perché il programma si occupi di scaricare la posta di nome-esterno@provider.it e rispedirla all'utente nome-locale. Digitando invece
$ fetchmail -d 120
Il programma rimarrà in memoria e controllerà la posta automaticamente ogni 120 secondi.
File globale
In Debian basta creare un file di configurazione simile al precedente chiamato
/etc/fetchmailrc perché automaticamente venga scaricata tutta la posta degli
utenti ogni 5 minuti.
Per ulteriori dettagli si guardi in /usr/share/doc/fetchmail, che contiene anche
un esempio di fetchmailrc...
Procmail
A questo punto dobbiamo decidere in quali file o directory organizzare la nostra
posta e dire al procmail di smistarla per noi in base ad alcune semplici (o
complicatissime) regole.
Procmail viene eseguito automaticamente ogni volta che ci arriva della posta e,
se opportunamente configurato, si occupa di smistare la posta.
Vediamo un esempio
Immagianiamo di voler memorizzare le mail in diverse caselle in formato mbox
nella cartella ~/Mail, a seconda se appartengano o no a qualche mailing-list o
siano spedite da qualcuno in particolare.
Creiamo con touch le seguenti mbox:
~/Mail/nuove/montellug
~/Mail/nuove/news
che procmail andrà a riempire (le mail che non rientrano in questa categoria
continueranno a stare in /var/mail/nome-locale).
Per definire le regole di smistaggio creiamo il seguente file .procmailrc:
:0: * ^Subject:.*(\[montellug\]|\[members\]|montellug\.it).*$ Mail/nuove/montellug :0: * ^From:.*(@lescienze\.it|@info\.nature\.com|science-mailer@liontamer\.stanford\.edu)\.*$ Mail/nuove/news
Le regole sono date con espressioni regolari (e strani simboletti per il procmail :) in triplette
di righe.
La prima riga :0: dice al procmail di analizzare l'header delle mail,
la seconda contiene l'espressione regolare da verificare, la terza l'mbox in cui copiare la mail
nel caso sia verificata l'espressione regolare.
In pratica basta copiare dai numerosi esempi in man procmailex per fare un po' di tutto senza addentrarsi nei meandri di man awk, man grep, man 7 regex per maneggiare le espressioni regolari.
Mutt
Siamo quasi pronti per leggere la posta col miglior MUA esistente (si veda in proposito
Il Nirvana con Mutt).
Adesso dobbiamo istruire il mutt, spiegandogli quali sono le cartelle da cui
arriva nuova posta e dove archiviarla.
Al solito si fa editando un file, ~/.muttrc:
# compila automaticamente campo From set use_from = yes set from = "nick <nome@provider.com>" # scelta e ordinamento campi header ignore * unignore From: Reply-To To Cc Subject Organization Date X-Mailer Lines User-Agent hdr_order From: Reply-To X-Mailer User-Agent Organization Date Cc To Subject Lines # dove salvare posta inviata set record='~/Mail/spedita' # default mbox set mbox='~/Mail/archivio/varie' # cartella posta set folder='~/Mail' # mbox di arrivo mail mailboxes '~/Mail/nuove/montellug' mailboxes '~/Mail/nuove/news' mailboxes '/var/mail/nome-locale' # dove archiviare le mail mbox-hook '~/Mail/nuove/montellug' '~/Mail/archivio/montellug' mbox-hook '~/Mail/nuove/news' '~/Mail/archivio/news'
Adesso lanciando mutt -y (magari dando un alias mutt="mutt -y") ci troviamo
davanti la lista delle mailbox di ingresso posta, con segnate quelle con nuove
mail.
Premendo tab si naviga invece nella directory Mail per aprire le mbox di
archivio...
Buon divertimento :)