+Server di posta: Postfix
+============================
+
+Il server di posta che prenderemo in considerazione e' Postfix, a seguire un estratto di un file di configurazione *semplice* con l'abilitazione delle *Maildir* nelle ``/home`` degli utenti per la consegna della posta:
+
+``/etc/postfix/main.cf``::
+
+ # ...segue dalla riga ~30
+ myhostname = 162.piffa.net
+ alias_maps = hash:/etc/aliases
+ alias_database = hash:/etc/aliases
+ myorigin = 162.piffa.net
+ mydestination = 162.piffa.net, localhost
+ # Se non avete un ip pubblico e statico, con un adeguato record PTR
+ # dovrete usare un realy host per l'invio della posta
+ relayhost = smtp.piffa.net
+
+ mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
+ # Se dovete inviare la posta per i client della vostra LAN privata:
+ # mynetworks = 127.0.0.0/8 192.168.0.0/24 [::ffff:127.0.0.0]/104 [::1]/128
+ # E si faccia BEN ATTENZIONE a non diventare un open realay smtp
+
+
+ # Per effettuare lo storaggio della posta nelle home directory degli utenti
+ # in una Maildir invece che nella Mailbox in /var/mail/nome_utente
+ # si disabiliti procmail
+ #mailbox_command = procmail -a "$EXTENSION"
+
+ # cartella_i abiliti lo storaggio della posta nella Maildir/ (si noti lo slash)
+ # all'interno della home dell'utente:
+ home_mailbox = Maildir/
+ mailbox_size_limit = 0
+ recipient_delimiter = +
+ inet_interfaces = all
+
+
+E' disponibile un file di configurazione di esempio ben piu' articolato e commentato::
+ /usr/share/postfix/main.cf.dist .
+
+Test del server smtp
+-----------------------
+
+Per testare il corretto funzionamento del server di posta si puo' procedere in vari modi.
+
+- Spedire una mail a una casella locale / remota e controllare i log (syslog)
+- Collegarsi via *telnet* al server di posta: http://www.netadmintools.com/art276.html
+- usare una utility come SWAKS
+
+Swaks
+~~~~~~~~~~~
+
+Per gli utenti meno esperti e' consigliabile utilizzare *SWAKS*: si installi l'omonimo pacchetto e si esegua un test con::
+ swaks --to utente@destinatario.tilde --from utente@propio.mail.tilde
+
+Ecco un esempio di una sessione corretta::
+
+ swaks --to andrea@piffa.net from andrea@mydomain.com
+ === Trying smtp.piffa.net:25...
+ === Connected to smtp.piffa.net.
+ <- 220 zoo.piffa.net ESMTP Postfix (Debian/GNU)
+ -> EHLO alice.mydomain.com
+ <- 250-zoo.piffa.net
+ <- 250-PIPELINING
+ <- 250-SIZE 10240000
+ <- 250-VRFY
+ <- 250-ETRN
+ <- 250-STARTTLS
+ <- 250-ENHANCEDSTATUSCODES
+ <- 250-8BITMIME
+ <- 250 DSN
+ -> MAIL FROM:<root@alice.mydomain.com>
+ <- 250 2.1.0 Ok
+ -> RCPT TO:<andrea@piffa.net>
+ <- 250 2.1.5 Ok
+ -> DATA
+ <- 354 End data with <CR><LF>.<CR><LF>
+ -> Date: Thu, 28 May 2009 13:11:19 +0200
+ -> To: andrea@piffa.net
+ -> From: root@alice.mydomain.com
+ -> Subject: test Thu, 28 May 2009 13:11:19 +0200
+ -> X-Mailer: swaks v20061116.0 jetmore.org/john/code/#swaks
+ ->
+ -> This is a test mailing
+ ->
+ -> .
+ <- 250 2.0.0 Ok: queued as 41FB261AFC
+ -> QUIT
+ <- 221 2.0.0 Bye
+ === Connection closed with remote host.
+
+
+
+Imap e pop
+------------------
+
+Postfix e' un server SMTP, di conseguenza se volete che i vostri utenti possano *scaricare* in locale la posta generalmente volete mettere a loro disposizione un server *POP3* o *IMAP*. Oppure entrambi.
+
+Pacchetti da installare
+ courier-imap courier-pop
+
+Si noti che IMAP necessita delle *Maildir*, non funziona con le Mailbox in ``/var/mail/`` .
+
+Client a riga di comando
+---------------------------
+
+Per testare il corretto funzionamento del server di posta e' utile avere a disposizione delle utility per inviare e leggere la posta: ovviamente da riga di comando.
+
+mailx
+~~~~~~~~~~~~~~
+
+Uno dei client piu' semplici, sopratutto per inviare un messaggioi. e' sufficiente usare una formula come::
+ mail utente@dominio.com
+
+Se il comando ``mail`` non fosse disponibile si installi il pacchetto ``mailx``.
+
+Al primo prompt si digitera' l'oggetto, il testo del messaggio (per terminare l'inserimento lasciare una riga vuota, digitare un ``punto + Invio`` su una riga vuota), la Carbon Copy (se necessaria).
+
+es::
+
+ mail andrea@localhost
+ Subject: Oggetto della mail
+ Testo del messagio,
+ per terminare il messaggio
+ lasciare una riga vuota
+ e un punto (poi Invio).
+
+ .
+ Cc:
+
+Per altrre opzioni si veda la pagina man.
+
+Mutt
+~~~~~
+
+Mutt e' uno dei gestori di posta preferiti da chi preferisce utilizzare l'interfaccia testuale per la gestione della posta.
+
+Mutt ha un file di configurazione ``.muttrc`` nella *home* dell'utente, alcuni settaggi possono essere utili:
+
+set folder="~/Maildir"
+ Per utilizzare ``/home/nome_utente/Maildir come mailbox``, invece del default ``/var/mail/nome_utente``.
+
+set editor="vim"
+ Utilizzare ``vim`` come editor per comporre i messaggi.
+
+
+Spesso e' utile poter *levvere al volo* la Mailbox / Maildir di un utente sul server di posta, per controllare se i messaggi vengono recapitati correttamente::
+
+ mutt -f /var/mail/utente
+ mutt -f /home/utente/Maildir
+
+In modo analogo si puo' consultare al volo la propia mailbox su un server remoto tramite IMAP/POP::
+
+ mutt -f imap://nome_utente@piffa.net
+
+
+Web client
+~~~~~~~~~~~~~~~
+
+Per mettere a disposizione degli utenti un client web per gestire la propria posta si installi il pacchetto: ``squirrelmail`` . Ci sono tanti altri client web disponibili: questo e' particolarmente semplice. Naturalmente dovrete aver installato: ``php5 apache2`` .
+
+L'interfaccia dovrebbe essere disponibile all'url: ``http://localhost/squirrelmail`` . Se cosi' non fosse assicuratevi che Apache abbia incluso il file di configurazione di squirrelmail::
+
+ cd /etc/apache2/conf.d/
+ ln -s /etc/squirrelmail/apache.conf ./squirrelmail.conf
+
+
+Graylisting
+----------------
+
+Il *graylisting* e' un sistema relativamente poco invasivo, con un limitato consumo di risorse per limitare lo *SPAM* in arrivo sul propio server di posta. Come suggerisce il nome e' una via di mezzo tra una *white list* (una lista di mittenti privilegiata, sempre benvenuti) e una *black list* (mittenti *bannati*, banditi dal poter inviare nuovi messaggi).
+
+Il funzionamento e' relativamente semplice: ogni mittente sconosciuto viene immediatamente rifiutato con un errore *non grave* come un *server non disponibile, provare piu' tardi*. Questo inconveniente non dovrebbe mettere in difficolta' un server di posta / mittente legittimo, che dopo un periodo di attesa tentera' nuovamente di inviare il messaggio ottenendo finalmente il risultato atteso. Diversamente un *bot* per l'invio di SPAM o un applicazione improvvisata (tipicamente di derivazione virale) che stesse inviando il messaggio *probabilmente* non insisterebbe, rinunciano ad inviare il messaggio preferendo destinazioni meno problematiche.
+
+
+Abilitazione in Postfix
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+Installare il pacchetto: ``postgrey`` e aggiungere il file di configurazione di Postfix ``/etc/postfix/main.cf``::
+
+ smtpd_recipient_restrictions =
+ permit_mynetworks,
+ reject_unauth_destination,
+ check_policy_service inet:127.0.0.1:60000
+
+Test
+~~~~~~~~
+
+Inviando un messaggio il client dovrebbe ricevere un iniziale messaggio di rifiuto del messaggio::
+
+ swaks --to andrea@piffa.net from andrea@mydonain.com
+ === Trying smtp.piffa.net:25...
+ === Connected to smtp.piffa.net
+ ...
+ <- 250 2.1.0 Ok
+ -> RCPT TO:<andrea@piffa.net>
+ <** 450 4.2.0 <andrea@piffa.net>: Recipient address rejected:
+ Greylisted, see http://postgrey.schweikert.ch/help/piffa.net.html
+ -> QUIT
+ <- 221 2.0.0 Bye
+ === Connection closed with remote host.
+
+A lato server si dovrebbe rilevare su ``/var/log/syslog`` qualcosa di simile::
+
+ connect from alice.mydomain.com[65.98.21.97]
+ May 28 14:53:34 r24266 postgrey: action=greylist, reason=new,
+ client_name=alice.mydomain.com,
+ client_address=10.0.0.1, sender=root@alice.mydomain.com, recipient=andrea@piffa.net
+ May 28 14:53:34 r24266 postfix/smtpd[22538]:
+ NOQUEUE: reject: RCPT from alice.mydomain.com[10.0.0.1]:
+ 450 4.2.0 <andrea@piffa.net>: Recipient address rejected: Greylisted,
+ see http://postgrey.schweikert.ch/help/piffa.net.html;
+ from=<root@alice.mydomain.com> to=<andrea@piffa.net>
+ proto=ESMTP helo=<alice.mydomain.com>
+ May 28 14:53:34 r24266 postfix/smtpd[22538]: disconnect from alice.mydomain.com[10.0.0.1]
+
+
+Statistiche
+~~~~~~~~~~~~~~~
+
+E' sempre utile poter tracciare qualche statistica sulle percentuali di messaggi ricevuti, da chi, messaggi rifiutati (e per quale motivo). Statistiche che attingono dai soliti log del server di posta ``/var/log/syslog`` di default oltre che i dedicati ``/var/log/mail`` .
+
+Una utility semplice per analizzare l'attivita' del propio server smtp potrebbe essere ``pflogsumm`` , installato il pacchetto la si puo' invocare con::
+
+ pflogsumm.pl /var/log/mail.log
+
+oppure utilizzare i log piu' vecchi ad es. ``/var/log/mail.log.0``
+