diff options
Diffstat (limited to 'it_IT.ISO8859-15/books/handbook/mail/chapter.xml')
-rw-r--r-- | it_IT.ISO8859-15/books/handbook/mail/chapter.xml | 2378 |
1 files changed, 2378 insertions, 0 deletions
diff --git a/it_IT.ISO8859-15/books/handbook/mail/chapter.xml b/it_IT.ISO8859-15/books/handbook/mail/chapter.xml new file mode 100644 index 0000000000..795d4fc7dc --- /dev/null +++ b/it_IT.ISO8859-15/books/handbook/mail/chapter.xml @@ -0,0 +1,2378 @@ +<?xml version="1.0" encoding="iso-8859-15" standalone="no"?> +<!-- + The FreeBSD Italian Documentation Project + + $FreeBSD$ + Original revision: 1.136 +--> + +<chapter id="mail"> + <chapterinfo> + <authorgroup> + <author> + <firstname>Bill</firstname> + + <surname>Lloyd</surname> + + <contrib>Lavoro originale di </contrib> + </author> + </authorgroup> + + <authorgroup> + <author> + <firstname>Jim</firstname> + + <surname>Mock</surname> + + <contrib>Rielaborato da </contrib> + </author> + </authorgroup> + </chapterinfo> + + <title>Posta Elettronica</title> + + <sect1 id="mail-synopsis"> + <title>Sinossi</title> + + <indexterm><primary>email</primary></indexterm> + + <para>La <quote>Posta Elettronica</quote>, meglio conosciuta come email, + è una delle forme di comunicazione maggiormente utilizzate + tutt'oggi. Questo capitolo fornisce un'introduzione di base per + eseguire un server di posta su &os;, come pure un'introduzione per inviare + e ricevere la posta elettronica usando &os;; comunque, questo non è + un riferimento completo e infatti molte considerazioni importanti sono + omesse. Per coprire questo argomento in modo più completo, si + rimanda il lettore alla moltitudine di eccellenti libri elencati + nell'<xref linkend="bibliography"/>.</para> + + <para>Dopo aver letto questo capitolo, saprai:</para> + + <itemizedlist> + <listitem> + <para>Quali componenti software vengono coinvolti nell'invio e + nella ricezione della posta elettronica.</para> + </listitem> + + <listitem> + <para>Dove sono collocati in FreeBSD i file di configurazione + fondamentali di <application>sendmail</application>.</para> + </listitem> + + <listitem> + <para>Le differenze tra casella di posta remota e locale.</para> + </listitem> + + <listitem> + <para>Come impedire agli spammer di usare illegalmente il tuo server di + posta come un relay.</para> + </listitem> + + <listitem> + <para>Come installare e configurare un mail transfer agent alternativo + sul tuo sistema, sostituendo + <application>sendmail</application>.</para> + </listitem> + + <listitem> + <para>Come risolvere i problemi più frequenti legati al + server di posta.</para> + </listitem> + + <listitem> + <para>Come usare SMTP con UCCP.</para> + </listitem> + + <listitem> + <para>Come configurare il sistema solo per inviare la posta.</para> + </listitem> + + <listitem> + <para>Come usare la posta con una connessione dialup.</para> + </listitem> + + <listitem> + <para>Come configurare l'Autenticazione SMTP per aumentare la + sicurezza.</para> + </listitem> + + <listitem> + <para>Come installare e usare un Mail User Agent (MUA), come + <application>mutt</application> per inviare e ricevere la + posta.</para> + </listitem> + + <listitem> + <para>Come scaricare la tua posta da un server remoto + <acronym>POP</acronym> o <acronym>IMAP</acronym>.</para> + </listitem> + + <listitem> + <para>Come applicare in modo automatico filtri e regole sulla posta + in entrata.</para> + </listitem> + </itemizedlist> + + <para>Prima di leggere questo capitolo, dovresti:</para> + + <itemizedlist> + <listitem> + <para>Aver configurato correttamente la tua connessione di rete + (<xref linkend="advanced-networking"/>).</para> + </listitem> + + <listitem> + <para>Aver configurato correttamente le informazioni DNS + relative alla tua macchina server di posta + (<xref linkend="network-servers"/>).</para> + </listitem> + + <listitem> + <para>Sapere come installare software aggiuntivo di terze parti + (<xref linkend="ports"/>).</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1 id="mail-using"> + <title>Utilizzo della Posta Elettronica</title> + + <indexterm><primary>POP</primary></indexterm> + <indexterm><primary>IMAP</primary></indexterm> + <indexterm><primary>DNS</primary></indexterm> + + <para>Ci sono cinque parti principali impegnate in uno scambio di email. + Queste sono: <link linkend="mail-mua">il programma client</link>, <link + linkend="mail-mta">quello server</link>, <link + linkend="mail-dns">il DNS</link>, <link linkend="mail-receive">una + casella di posta remota o locale</link>, e naturalmente <link + linkend="mail-host">la macchina server di posta</link>.</para> + + <sect2 id="mail-mua"> + <title>Il Programma Client</title> + + <para>Questo include programmi a riga di comando quali + <application>mutt</application>, <application>pine</application>, + <application>elm</application>, e <application>mail</application>, + e programmi con un'interfaccia grafica (<acronym>GUI</acronym>) quali + <application>balsa</application>, <application>xfmail</application> + per citarne alcuni, e qualcosa di più <quote>raffinato</quote> + simile a un browser WWW. Questi programmi semplicemente fanno passare + le transazioni email alla <link linkend="mail-host"><quote>macchina + server di posta</quote></link> locale, chiamando uno dei + <link linkend="mail-mta">programmi server</link> disponibili o + inoltrando queste transazioni via TCP.</para> + </sect2> + + <sect2 id="mail-mta"> + <title>Il Programma Server</title> + + <indexterm> + <primary>server di posta</primary> + <secondary><application>sendmail</application></secondary> + </indexterm> + <indexterm> + <primary>server di posta</primary> + <secondary><application>postfix</application></secondary> + </indexterm> + <indexterm> + <primary>server di posta</primary> + <secondary><application>qmail</application></secondary> + </indexterm> + <indexterm> + <primary>server di posta</primary> + <secondary><application>exim</application></secondary> + </indexterm> + + <para>&os; incorpora di default <application>sendmail</application>, + ma supporta anche altri programmi server di posta elettronica, alcuni + dei quali sono:</para> + + <itemizedlist> + <listitem> + <para><application>exim</application>;</para> + </listitem> + + <listitem> + <para><application>postfix</application>;</para> + </listitem> + + <listitem> + <para><application>qmail</application>.</para> + </listitem> + </itemizedlist> + + <para>Di solito il programma server svolge due funzioni—si occupa + di ricevere la posta in arrivo e di consegnare quella in partenza. + Questo programma <emphasis>non</emphasis> permette di prelevare la posta + usando protocolli come <acronym>POP</acronym> o <acronym>IMAP</acronym>, + ne tanto meno di <quote>collegarsi</quote> alle caselle di posta locali + <filename>mbox</filename> o di tipo Maildir. Per far questo hai + bisogno di un altro <link linkend="mail-receive">demone</link>.</para> + + <warning> + <para>Vecchie versioni di <application>sendmail</application> contengono + alcuni seri problemi di sicurezza che possono dare la + possibilità ad un attaccante di guadagnarsi un accesso locale + e/o remote sulla tua macchina. Assicurati di eseguire una versione + aggiornata per evitare questi problemi. In alternativa, installa + un altro <acronym>MTA</acronym> dalla <link linkend="ports">&os; + Ports Collection</link>.</para> + </warning> + </sect2> + + <sect2 id="mail-dns"> + <title>Email e DNS</title> + + <para>Il <acronym>DNS</acronym> (Domain Name System) e il suo demone + <command>named</command> giocano un ruolo fondamentale nella consegna + della posta. Per consegnare la posta dal tuo host a un altro, il + programma server cercherà l'host remoto nel DNS per determinare + la macchina server che riceverà la posta per il destinatario. + Lo stesso processo avviene quando un host remoto invia dei messaggi di + posta alla tua macchina server di posta.</para> + + <indexterm><primary>record MX</primary></indexterm> + + <para>Il <acronym>DNS</acronym> è responsabile della corrispondenza + tra nomi host ed indirizzi IP, e memorizza anche informazioni specifiche + per la consegna della posta, informazioni conosciute come record MX. + Il record MX (Mail eXchanger) specifica quale/i host dovranno ricevere + la posta per un particolare dominio. Se non hai un record MX per il tuo + nome host o per il tuo dominio, la posta sarà consegnata + direttamente al tuo host a condizione di avere un record A che mappa + il tuo nome host al tuo indirizzo IP.</para> + + <para>Puoi vedere i record MX per un dominio usando il comando + &man.host.1;, come mostrato nel seguente esempio:</para> + + <screen>&prompt.user; <userinput>host -t mx FreeBSD.org</userinput> +FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org</screen> + </sect2> + + <sect2 id="mail-receive"> + <title>Ricezione della Posta</title> + + <indexterm> + <primary>email</primary> + <secondary>ricezione</secondary> + </indexterm> + + <para>La ricezione della posta per il tuo dominio viene gestita dalla + macchina server di posta. Questa raccoglierà la posta + indirizzata al tuo dominio e la salverà nel formato + <filename>mbox</filename> (metodo per la memorizzazione della posta di + default) o Maildir, a seconda delle tua configurazione. Una volta + memorizzata, la posta può essere sia letta in modo locale usando + applicazioni come &man.mail.1; o <application>mutt</application>, sia + prelevata in modo remoto usando protocolli come <acronym>POP</acronym> + e <acronym>IMAP</acronym>. Ciò significa che se vuoi solo + leggere la posta localmente, non hai bisogno di installare un server + <acronym>POP</acronym> o <acronym>IMAP</acronym>.</para> + + <sect3 id="pop-and-imap"> + <title>Accedere a caselle di posta remote usando <acronym>POP</acronym> + o <acronym>IMAP</acronym></title> + + <indexterm><primary>POP</primary></indexterm> + <indexterm><primary>IMAP</primary></indexterm> + + <para>Per accedere a caselle di posta in modo remoto, devi avere + l'accesso a un server <acronym>POP</acronym> o + <acronym>IMAP</acronym>. Questi protocolli permettono agli utenti + di collegarsi con facilità alle loro caselle di posta da + locazioni remote. Benchè sia <acronym>POP</acronym> che + <acronym>IMAP</acronym> permettono agli utenti di accedere alle + caselle di posta in modo remoto, <acronym>IMAP</acronym> offre + alcuni vantaggi, alcuni dei quali sono:</para> + + <itemizedlist> + <listitem> + <para><acronym>IMAP</acronym> può memorizzare e prelevare + i messaggi di posta su un server remoto.</para> + </listitem> + + <listitem> + <para><acronym>IMAP</acronym> supporta aggiornamenti + simultanei.</para> + </listitem> + + <listitem> + <para><acronym>IMAP</acronym> può essere estremamente utile + con connessioni lente poichè permette agli utenti di + prelevare la struttura dei messaggi senza scaricarli + completamente; può inoltre realizzare compiti come la + ricerca su un server al fine di minimizzare il trasferimento dei + dati tra client e server.</para> + </listitem> + </itemizedlist> + + <para>Per installare un server <acronym>POP</acronym> o + <acronym>IMAP</acronym>, devi seguire i seguenti passi:</para> + + <procedure> + <step> + <para>Scegli un server <acronym>IMAP</acronym> o + <acronym>POP</acronym> che meglio soddisfa le tue + necessità. I seguenti server <acronym>POP</acronym> e + <acronym>IMAP</acronym> sono ben noti e si prestano come degli + ottimi esempi:</para> + + <itemizedlist> + <listitem> + <para><application>qpopper</application>;</para> + </listitem> + + <listitem> + <para><application>teapop</application>;</para> + </listitem> + + <listitem> + <para><application>imap-uw</application>;</para> + </listitem> + + <listitem> + <para><application>courier-imap</application>;</para> + </listitem> + </itemizedlist> + </step> + + <step> + <para>Installa il demone <acronym>POP</acronym> o + <acronym>IMAP</acronym> di tua scelta dalla collezione dei + port.</para> + </step> + + <step> + <para>Se necessario, modifica il file + <filename>/etc/inetd.conf</filename> per avviare il server + <acronym>POP</acronym> o <acronym>IMAP</acronym>.</para> + </step> + </procedure> + + <warning> + <para>Nota che sia <acronym>POP</acronym> che <acronym>IMAP</acronym> + trasmettono informazioni, inclusi il nome utente e la password in + chiaro. Ciò significa che se vuoi mettere al sicuro la + trasmissione di informazioni su questi protocolli, potresti + considerare di effettuare tunnel di sessioni con &man.ssh.1;. + La creazione di tunnel di sessioni è descritta nella + <xref linkend="security-ssh-tunneling"/>.</para> + </warning> + </sect3> + + <sect3 id="local"> + <title>Accesso alle caselle di posta locali</title> + + <para>Si può accedere localmente alla casella di posta + utilizzando un <acronym>MUA</acronym> sul server nel quale risiede la + casella di posta. Questo può essere fatto usando applicazioni + come <application>mutt</application> o &man.mail.1;.</para> + </sect3> + </sect2> + + <sect2 id="mail-host"> + <title>La Macchina Server di Posta</title> + + <indexterm><primary>macchina server di posta</primary></indexterm> + + <para>La macchina server di posta è il nome del server + che è responsabile della consegna e del ricevimento della posta + per il tuo host, ed eventualmente per la tua rete.</para> + </sect2> + </sect1> + + <sect1 id="sendmail"> + <sect1info> + <authorgroup> + <author> + <firstname>Christopher</firstname> + + <surname>Shumway</surname> + + <contrib>Contributo di </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Configurazione di <application>sendmail</application></title> + + <indexterm> + <primary><application>sendmail</application></primary> + </indexterm> + + <para>&man.sendmail.8; è il Mail Transfer Agent (MTA) di default su + FreeBSD. Il compito di <application>sendmail</application> è di + accettare posta dai Mail User Agent (<acronym>MUA</acronym>), e + consegnarla al server di posta appropriato come definito nel suo file di + configurazione. Inoltre <application>sendmail</application> può + accettare connessioni via rete e consegnare i messaggi a caselle di posta + locali o ad un altro programma.</para> + + <para><application>sendmail</application> utilizza i seguenti file di + configurazione:</para> + + <indexterm> + <primary><filename>/etc/mail/access</filename></primary> + </indexterm> + <indexterm> + <primary><filename>/etc/mail/aliases</filename></primary> + </indexterm> + <indexterm> + <primary><filename>/etc/mail/local-host-names</filename></primary> + </indexterm> + <indexterm> + <primary><filename>/etc/mail/mailer.conf</filename></primary> + </indexterm> + <indexterm> + <primary><filename>/etc/mail/mailertable</filename></primary> + </indexterm> + <indexterm> + <primary><filename>/etc/mail/sendmail.cf</filename></primary> + </indexterm> + <indexterm> + <primary><filename>/etc/mail/virtusertable</filename></primary> + </indexterm> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="2"> + <thead> + <row> + <entry>File</entry> + + <entry>Funzione</entry> + </row> + </thead> + + <tbody> + <row> + <entry><filename>/etc/mail/access</filename></entry> + + <entry>File database di accesso di + <application>sendmail</application></entry> + </row> + + <row> + <entry><filename>/etc/mail/aliases</filename></entry> + + <entry>Alias delle caselle di posta</entry> + </row> + + <row> + <entry><filename>/etc/mail/local-host-names</filename></entry> + + <entry>Lista di host per i quali + <application>sendmail</application> accetta posta</entry> + </row> + + <row> + <entry><filename>/etc/mail/mailer.conf</filename></entry> + + <entry>File di configurazione del programma di posta</entry> + </row> + + <row> + <entry><filename>/etc/mail/mailertable</filename></entry> + + <entry>Tabella di consegna del programma di posta</entry> + </row> + + <row> + <entry><filename>/etc/mail/sendmail.cf</filename></entry> + + <entry>File di configurazione principale di + <application>sendmail</application></entry> + </row> + + <row> + <entry><filename>/etc/mail/virtusertable</filename></entry> + + <entry>Tabelle degli utenti e dei domini virtuali</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <sect2> + <title><filename>/etc/mail/access</filename></title> + + <para>Il database di accesso definisce quali host o indirizzi + IP hanno accesso al server di posta locale e quale tipo di accesso + hanno. Gli host possono essere catalogati come <option>OK</option>, + <option>REJECT</option>, <option>RELAY</option> o possono semplicemente + essere passati alla procedura di gestione degli errori di + <application>sendmail</application> con un preciso errore. Gli host + che sono definiti <option>OK</option>, che è il valore di + default, possono spedire posta a questo host sempre che la destinazione + finale della posta sia la macchina locale. Gli host che sono definiti + <option>REJECT</option> vengono rifiutati per qualsiasi connessione di + posta. Gli host che hanno l'opzione <option>RELAY</option> per i loro + nomi host possono utilizzare questo server per spedire posta verso + qualsiasi destinazione.</para> + + <example> + <title>Configurazione del Database di Accesso di + <application>sendmail</application></title> + + <programlisting>cyberspammer.com 550 Non accettiamo posta dagli spammer +FREE.STEALTH.MAILER@ 550 Non accettiamo posta dagli spammer +altra.sorgente.di.spam REJECT +okay.cyberspammer.com OK +128.32 RELAY</programlisting> + </example> + + <para>In questo esempio abbiamo cinque elementi. Gli host mittenti + che corrispondono a quelli posti sul lato sinistro della tabella sono + condizionati dall'azione posta sul lato destro della tabella. + I primi due esempi passano un codice di errore alla procedura di + <application>sendmail</application> che gestisce gli errori. Il + messaggio viene restituito all'host remoto quando viene trovata una + corrispondenza sul lato sinistro della tabella. Il terzo esempio + rifiuta la posta da un host specifico su Internet, + <hostid>altra.sorgente.di.spam</hostid>. Il quarto esempio accetta + connessioni di posta da un host, <hostid + role="fqdn">okay.cyberspammer.com</hostid>, che è più + preciso rispetto a <hostid role="domainname">cyberspammer.com</hostid> + della prima linea. Le corrispondenze più precise sovrascrivono + quelle meno precise. L'ultimo esempio permette il relay della posta + elettronica agli host che hanno un indirizzo IP che inizia con + <hostid>128.32</hostid>. Questi host possono spedire messaggi destinati + ad altri server di posta attraverso questo server.</para> + + <para>Quando modifichi questo file, devi eseguire <command>make</command> + in <filename>/etc/mail/</filename> per aggiornare il database.</para> + </sect2> + + <sect2> + <title><filename>/etc/mail/aliases</filename></title> + + <para>Il database degli alias contiene una lista di caselle di posta + virtuali che sono espanse in altri utenti, file, programmi o in altri + alias. Seguono alcuni esempi che possono essere usati in + <filename>/etc/mail/aliases</filename>:</para> + + <example> + <title>Alias di Posta</title> + + <programlisting>root: utentelocale +ftp-bugs: joe,eric,paul +bit.bucket: /dev/null +procmail: "|/usr/local/bin/procmail"</programlisting> + </example> + + <para>Il formato del file è semplice: il nome della casella di + posta che si trova a sinistra dei due punti viene espanso negli elementi + posti a destra dei due punti. Il primo esempio semplicemente espande la + casella di posta <username>root</username> nella casella di posta + <username>utentelocale</username>, che è di nuovo ricercata + nel database degli alias. Se non viene trovata, allora il messaggio + viene consegnato all'utente locale <username>utentelocale</username>. + L'esempio successivo mostra una mailing list. La posta indirizzata + alla casella di posta <username>ftp-bugs</username> viene espansa nelle + tre caselle di posta locali <username>joe</username>, + <username>eric</username>, e <username>paul</username>. Nota che una + casella di posta remota può essere specificata come + <email>user@example.com</email>. Il terzo esempio mostra come + scrivere la posta su un file, in questo caso + <filename>/dev/null</filename>. L'ultimo esempio mostra come mandare + la posta a un programma, in questo caso il messaggio di posta diventa + lo standard input di <filename>/usr/local/bin/procmail</filename> + tramite una pipe &unix;.</para> + + <para>Quando modifichi questo file, devi eseguire <command>make</command> + in <filename>/etc/mail/</filename> per aggiornare il database.</para> + </sect2> + + <sect2> + <title><filename>/etc/mail/local-host-names</filename></title> + + <para>Questo file è una lista di nomi host che &man.sendmail.8; + accetta come se fossero l'host locale. Metti i domini o gli host + per i quali <application>sendmail</application> deve ricevere posta. + Per esempio, se questo server di posta dovesse essere in grado di + accettare posta per il dominio + <hostid role="domainname">example.com</hostid> e per l'host + <hostid role="fqdn">mail.example.com</hostid>, il suo + <filename>local-host-names</filename> potrebbe assomigliare a + questo:</para> + + <programlisting>example.com +mail.example.com</programlisting> + + <para>Quando modifichi questo file, devi riavviare &man.sendmail.8; per + attivare i cambiamenti.</para> + </sect2> + + <sect2> + <title><filename>/etc/mail/sendmail.cf</filename></title> + + <para>Il file di configurazione principale di + <application>sendmail</application>, <filename>sendmail.cf</filename> + controlla l'intero comportamento di <application>sendmail</application>, + inclusa ogni cosa, dalla rielaborazione degli indirizzi e-mail alla + stampa del messaggio di rifiuto per i server di posta remoti. + Naturalmente, avendo svariati compiti, questo file di configurazione + è alquanto complesso e i suoi dettagli vanno oltre lo scopo di + questa sezione. Fortunatamente, questo file necessita raramente di + essere modificato per server di posta standard.</para> + + <para>Il file di configurazione principale di + <application>sendmail</application> può essere costruito + a partire da macro &man.m4.1; che definiscono le caratteristiche e il + comportamento di <application>sendmail</application>. Guarda + <filename>/usr/src/contrib/sendmail/cf/README</filename> per ulteriori + dettagli.</para> + + <para>Quando modifichi questo file, devi riavviare &man.sendmail.8; per + attivare i cambiamenti.</para> + </sect2> + + <sect2> + <title><filename>/etc/mail/virtusertable</filename></title> + + <para>Il file <filename>virtusertable</filename> mappa indirizzi di posta + relativi a domini e caselle di posta virtuali in caselle di posta reali. + Queste caselle di posta possono essere locali, remote, alias definiti in + <filename>/etc/mail/aliases</filename> o file.</para> + + <example> + <title>Esempio di Mappatura per la Posta di un Dominio Virtuale</title> + + <programlisting>root@example.com root +postmaster@example.com postmaster@noc.example.net +@example.com joe</programlisting> + </example> + + <para>Nell'esempio precedente, abbiamo una mappatura per il dominio + <hostid role="domainname">example.com</hostid>. Questo file viene + processato dall'alto verso il basso fermandosi alla prima corrispondenza + trovata. Il primo elemento mappa <email>root@example.com</email> + nella casella di posta locale <username>root</username>. Il secondo + elemento mappa <email>postmaster@example.com</email> nella casella + di posta <username>postmaster</username> sull'host <hostid + role="fqdn">noc.example.net</hostid>. Infine, se non sono state + trovate corrispondenze per <hostid role="fqdn">example.com</hostid> + fino a questo punto, verrà verificata l'ultima mappatura, che + corrisponde a tutti gli altri messaggi di posta indirizzati a qualche + utente di <hostid role="domainname">example.com</hostid>. + Questo verrà mappato nella casella di posta locale + <username>joe</username>.</para> + </sect2> + </sect1> + + <sect1 id="mail-changingmta"> + <sect1info> + <authorgroup> + <author> + <firstname>Andrew</firstname> + + <surname>Boothman</surname> + + <contrib>Scritto da </contrib> + </author> + </authorgroup> + + <authorgroup> + <author> + <firstname>Gregory</firstname> + + <surname>Neil Shapiro</surname> + + <contrib>Informazioni prese da e-mail scritte da </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Sostituzione del proprio Mail Transfer Agent</title> + + <indexterm> + <primary>email</primary> + <secondary>cambiare mta</secondary> + </indexterm> + + <para>Come già menzionato, l'MTA (Mail Transfer Agent, agente di + trasferimento della posta elettronica) installato di default su FreeBSD + è <application>sendmail</application>. Di conseguenza + <application>sendmail</application> è responsabile della tua posta + in partenza e di quella in arrivo.</para> + + <para>Comunque, per vari motivi, alcuni amministratori necessitano di + cambiare l'MTA dei loro sistemi. Questi motivi spaziano dal voler + semplicemente provare un altro MTA all'aver bisogno di una caratteristica + o di un pacchetto specifico ritrovabile in un altro MTA. Fortunatamente, + per qualsiasi motivo, FreeBSD semplifica il processo di + sostituzione.</para> + + <sect2> + <title>Installazione di un nuovo MTA</title> + + <para>Hai un'ampia scelta di MTA utilizzabili. Un buon punto di partenza + è la <link linkend="ports">FreeBSD Ports Collection</link> dove + puoi trovarne molti. Naturalmente sei libero di usare qualunque + MTA proveniente da qualche sito, a condizione che tu riesca ad eseguirlo + sotto FreeBSD.</para> + + <para>Inizia installando il tuo nuovo MTA. Una volta installato devi + valutare se realmente soddisfa le tue necessità, inoltre devi + avere la possibilità di configurare il tuo nuovo programma prima + che subentri a <application>sendmail</application>. Valutato questo, + devi essere sicuro che durante l'installazione del nuovo programma non + ci siano stati tentativi di sovrascrivere binari di sistema come + <filename>/usr/bin/sendmail</filename>. Altrimenti, il tuo nuovo + programma di posta è stato essenzialmente messo in + attività prima che tu l'abbia configurato.</para> + + <para>Per cortesia fai riferimento alla documentazione dell'MTA che hai + scelto per informazioni su come configurarlo.</para> + </sect2> + + <sect2 id="mail-disable-sendmail"> + <title>Disabilitazione di <application>sendmail</application></title> + + <para>La procedura usata per avviare <application>sendmail</application> + cambia significativamente tra la 4.5-RELEASE e la 4.6-RELEASE. + Di conseguenza, la procedura usata per disabilitarlo è + leggermente differente a seconda della versione di FreeBSD + utilizzata.</para> + + <warning> + <para>Se disabiliti il servizio di consegna della posta di + <application>sendmail</application> in questo modo, è + importante che questo venga rimpiazzato con un altro sistema + di consegna della posta. Se non lo farai, + le funzioni di sistema come &man.periodic.8; saranno incapaci di + inviare i loro risultati tramite e-mail come normalmente prevedono + di fare. Molte parti del tuo sistema potrebbero presupporre di + avere un sistema funzionante compatibile con + <application>sendmail</application>. Se le applicazioni continuano + a usare i binari di <application>sendmail</application> per tentare + di spedire e-mail dopo che tu l'hai disabilitato, la posta potrebbe + finire in una coda inattiva di <application>sendmail</application>, + senza che venga mai consegnata.</para> + </warning> + + <sect3> + <title>FreeBSD 4.5-STABLE prima del 4/4/2002 e precedenti (inclusa + 4.5-RELEASE e precedenti)</title> + + <para>Metti:</para> + + <programlisting>sendmail_enable="NO"</programlisting> + + <para>in <filename>/etc/rc.conf</filename>. In questo modo si + disabiliterà il servizio di ricezione della posta + di <application>sendmail</application>, ma se + <filename>/etc/mail/mailer.conf</filename> (vedi sotto) non viene + modificato, <application>sendmail</application> verrà ancora + usato per spedire e-mail.</para> + </sect3> + + <sect3> + <title>FreeBSD 4.5-STABLE dopo il 4/4/2002 (inclusa 4.6-RELEASE e + successive)</title> + + <para>Per disabilitare completamente <application>sendmail</application>, + incluso il servizio della posta in uscita, devi mettere</para> + + <programlisting>sendmail_enable="NONE"</programlisting> + + <para>in <filename>/etc/rc.conf.</filename></para> + + <para>Se vuoi solamente disabilitare il servizio di ricezione della + posta di <application>sendmail</application>, devi mettere</para> + + <programlisting>sendmail_enable="NO"</programlisting> + + <para>in <filename>/etc/rc.conf</filename>. Comunque, se + la ricezione della posta è disabilitata, la consegna locale + funzionerà ancora. Maggiori informazioni sulle + opzioni di avvio di <application>sendmail</application> sono + disponibili nella pagina man di &man.rc.sendmail.8;.</para> + </sect3> + + <sect3> + <title>FreeBSD 5.0-STABLE e Successive</title> + + <para>Per disabilitare completamente + <application>sendmail</application>, servizi di posta in + ingresso e in uscita inclusi, devi usare</para> + + <programlisting>sendmail_enable="NO" +sendmail_submit_enable="NO" +sendmail_outbound_enable="NO" +sendmail_msp_queue_enable="NO"</programlisting> + + <para>in <filename>/etc/rc.conf.</filename></para> + + <para>Se vuoi solamente disabilitare il servizio di ricezione della + posta di <application>sendmail</application>, devi mettere</para> + + <programlisting>sendmail_enable="NO"</programlisting> + + <para>in <filename>/etc/rc.conf</filename>. Molte informazioni sulle + opzioni di avvio di <application>sendmail</application> sono + disponibili nella pagina man di &man.rc.sendmail.8;.</para> + </sect3> + </sect2> + + <sect2> + <title>Esecuzione del nuovo MTA all'avvio</title> + + <para>Hai due possibili metodi per eseguire il tuo nuovo MTA all'avvio, + a seconda della versione di FreeBSD utilizzata.</para> + + <sect3> + <title>FreeBSD 4.5-STABLE prima del 11/4/2002 (inclusa 4.5-RELEASE e + precedenti)</title> + + <para>Posiziona uno script in + <filename>/usr/local/etc/rc.d/</filename> con estensione + <filename>.sh</filename> ed eseguibile da <username>root</username>. + Lo script deve accettare i parametri <literal>start</literal> e + <literal>stop</literal>. Nella fase di avvio di FreeBSD gli script + di sistema eseguiranno il comando</para> + + <programlisting>/usr/local/etc/rc.d/supermailer.sh start</programlisting> + + <para>che puoi anche usare per avviare manualmente il + server. Nella fase di chiusura di FreeBSD, gli script di sistema + useranno l'opzione <literal>stop</literal>, eseguendo il + comando</para> + + <programlisting>/usr/local/etc/rc.d/supermailer.sh stop</programlisting> + + <para>che puoi anche usare per arrestare manualmente il + server mentre il sistema è in funzione.</para> + </sect3> + + <sect3> + <title>FreeBSD 4.5-STABLE dopo il 11/4/2002 (inclusa 4.6-RELEASE e + successive)</title> + + <para>Con le versioni recenti di FreeBSD, puoi usare il metodo + precedente oppure puoi mettere</para> + + <programlisting>mta_start_script="nomefile"</programlisting> + + <para>in <filename>/etc/rc.conf</filename>, dove + <replaceable>nomefile</replaceable> è il nome dello script + che vuoi eseguire all'avvio per avviare il tuo MTA.</para> + </sect3> + </sect2> + + <sect2> + <title>Sostituzione di <application>sendmail</application> come programma + di posta di default del sistema</title> + + <para><application>sendmail</application> è così + onnipresente come programma standard su sistemi &unix; che alcuni + programmi lo suppongono già installato e configurato. Per questa + ragione, molti degli altri MTA forniscono la loro compatibile + implementazione dell'interfaccia a riga di comando di + <application>sendmail</application>; questo agevola il loro utilizzo + come sostituti <quote>drop-in</quote> di + <application>sendmail</application>.</para> + + <para>Quindi, se usi un altro programma di posta, dovrai assicurarti + che i programmi che tentano di eseguire i binari standard di + <application>sendmail</application> come + <filename>/usr/bin/sendmail</filename> in realtà eseguano + il programma di posta da te scelto. Fortunatamente, FreeBSD fornisce + un meccanismo chiamato &man.mailwrapper.8; che fa questo lavoro per + te.</para> + + <para>Quando <application>sendmail</application> è operativo, + dovresti vedere in <filename>/etc/mail/mailer.conf</filename> qualcosa + di simile a questo:</para> + + <programlisting>sendmail /usr/libexec/sendmail/sendmail +send-mail /usr/libexec/sendmail/sendmail +mailq /usr/libexec/sendmail/sendmail +newaliases /usr/libexec/sendmail/sendmail +hoststat /usr/libexec/sendmail/sendmail +purgestat /usr/libexec/sendmail/sendmail</programlisting> + + <para>Questo significa che quando uno di questi comandi + (come <filename>sendmail</filename> stesso) viene eseguito, in + realtà il sistema invoca una copia di mailwrapper di nome + <filename>sendmail</filename>, la quale esamina + <filename>mailer.conf</filename> ed esegue + <filename>/usr/libexec/sendmail/sendmail</filename>. Questo meccanismo + facilita la sostituzione dei binari che sono realmente eseguiti quando + vengono invocate queste funzioni di default di + <filename>sendmail</filename>.</para> + + <para>Quindi se vuoi che + <filename>/usr/local/supermailer/bin/sendmail-compat</filename> sia + eseguito al posto di <application>sendmail</application>, devi + modificare <filename>/etc/mail/mailer.conf</filename> in questo + modo:</para> + + <programlisting>sendmail /usr/local/supermailer/bin/sendmail-compat +send-mail /usr/local/supermailer/bin/sendmail-compat +mailq /usr/local/supermailer/bin/mailq-compat +newaliases /usr/local/supermailer/bin/newaliases-compat +hoststat /usr/local/supermailer/bin/hoststat-compat +purgestat /usr/local/supermailer/bin/purgestat-compat</programlisting> + </sect2> + + <sect2> + <title>Conclusione</title> + + <para>Una volta che hai configurato ogni cosa a tuo piacimento, devi + terminare i processi di <application>sendmail</application> di cui non + hai più bisogno e avviare i processi appartenenti al tuo nuovo + programma, oppure puoi semplicemente riavviare il sistema. Riavviando + il sistema avrai la possibilità di verificare se il sistema sia + stato configurato correttamente per eseguire il tuo nuovo MTA in modo + automatico all'avvio.</para> + </sect2> + </sect1> + + <sect1 id="mail-trouble"> + <title>Risoluzione dei Problemi</title> + + <indexterm> + <primary>email</primary> + <secondary>risoluzione dei problemi</secondary> + </indexterm> + + <qandaset> + <qandaentry> + <question> + <para>Perché devo usare nomi di dominio completi (FQDN) per gli + host del mio dominio?</para> + </question> + + <answer> + <para>Probabilmente ti accorgerai che l'host è effettivamente + in un dominio differente; per esempio, se sei in <hostid + role="fqdn">foo.bar.edu</hostid> e desideri raggiungere un host + chiamato <hostid>mumble</hostid> appartenente al dominio <hostid + role="domainname">bar.edu</hostid>, dovrai riferirti a questo + tramite un nome di dominio completo, <hostid + role="fqdn">mumble.bar.edu</hostid>, invece del solo + <hostid>mumble</hostid>.</para> + + <indexterm><primary>BIND</primary></indexterm> + + <para>Tradizionalmente, questo era permesso dai resolver BIND di + BSD. Tuttavia la versione corrente di + <application>BIND</application> equipaggiata con FreeBSD non + prevede più l'abbreviazione di default per nomi di dominio + non completi all'infuori del dominio in cui sei. Quindi l'host + <hostid>mumble</hostid> sarà giudicato come <hostid + role="fqdn">mumble.foo.bar.edu</hostid>, oppure sarà + ricercato per il dominio radice.</para> + + <para>Questo differisce dal comportamento precedente, dove la ricerca + continuava attraverso <hostid + role="domainname">mumble.bar.edu</hostid>, e <hostid + role="domainname">mumble.edu</hostid>. Dai un'occhiata all'RFC + 1535 per i motivi per cui questa sia considerata una cattiva + pratica, o persino un buco di sicurezza.</para> + + <para>Come buona soluzione al problema, puoi mettere la linea: + <programlisting>search foo.bar.edu bar.edu</programlisting> + al posto della precedente: + <programlisting>domain foo.bar.edu</programlisting> + nel tuo <filename>/etc/resolv.conf</filename>. Comunque, assicurati + che l'ordine di ricerca non oltrepassi il + <quote>confine tra amministrazione locale e pubblica</quote>, come + definito nell'RFC 1535.</para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <indexterm><primary>record MX</primary></indexterm> + + <para><application>sendmail</application> riporta l'errore + <errorname>mail loops back to myself</errorname></para> + </question> + + <answer> + <para>La risposta è contenuta nelle FAQ di + <application>sendmail</application> come segue:</para> + + <programlisting>Ottengo messaggi di errore, come questo: + +553 MX list for domain.net points back to relay.domain.net +554 <user@domain.net>... Local configuration error + +Come posso risolvere questo problema? + +Hai chiesto che la posta per il dominio (es., domain.net) sia inoltrata +a un host specifico (in questo caso, relay.domain.net) attraverso l'uso di +un record MX, ma la macchina di inoltro non si riconosce appartenente a +domain.net. Aggiungi domain.net in /etc/mail/local-host-names +[chiamato /etc/sendmail.cw nelle versioni precedenti alla 8.10] +(se stai usando FEATURE(use_cw_file)) oppure aggiungi <quote>Cw domain.net</quote> +in /etc/mail/sendmail.cf.</programlisting> + + <para>Le FAQ di <application>sendmail</application> possono essere + trovate su <ulink url="http://www.sendmail.org/faq/"></ulink> ed + è raccomandato leggerle se vuoi <quote>perfezionare</quote> + la tua configurazione di posta.</para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <indexterm><primary>PPP</primary></indexterm> + + <para>Come posso eseguire un server di posta su un host connesso in + dial-up tramite PPP?</para> + </question> + + <answer> + <para>Vuoi collegare ad Internet una macchina FreeBSD posta sulla tua + LAN. La macchina FreeBSD sarà un gateway di posta per la + LAN. La connessione PPP non è molto indicata per questo + scopo.</para> + + <indexterm><primary>UUCP</primary></indexterm> + + <indexterm><primary>record MX</primary></indexterm> + + <para>Esistono almeno due modi per far questo. Un modo è + usare UUCP.</para> + + <para>L'altro è trovare un server Internet a tempo pieno + che fornisca un servizio MX secondario per il tuo dominio. + Per esempio, se il dominio della tua società è + <hostid role="domainname">example.com</hostid> e il tuo fornitore + di servizi Internet ha attivato <hostid + role="domainname">example.net</hostid> per fornire il servizio + MX secondario al tuo dominio, allora:</para> + + <programlisting>example.com. MX 10 example.com. + MX 20 example.net.</programlisting> + + <para>Solo un host deve essere specificato come ultimo + ricevente (aggiungi <literal>Cw example.com</literal> in + <filename>/etc/mail/sendmail.cf</filename> su <hostid + role="domainname">example.com</hostid>).</para> + + <para>Quando <command>sendmail</command> tenterà di consegnare + la posta proverà a connettersi alla tua connessione modem + (<hostid role="domainname">example.com</hostid>). Molto + probabilmente finirà in time out poiché non sei + online. In modo automatico <command>sendmail</command> + consegnerà la posta al server MX secondario, ad esempio il + tuo provider Internet (<hostid + role="domainname">example.net</hostid>). Il server MX secondario + tenterà periodicamente di collegarsi al tuo host per + consegnare la posta all'host MX primario (<hostid + role="domainname">example.com</hostid>).</para> + + <para>Come script di login potresti usare qualcosa di simile a + questo:</para> + + <programlisting>#!/bin/sh +# Mettimi in /usr/local/bin/pppmyisp +( sleep 60 ; /usr/sbin/sendmail -q ) & +/usr/sbin/ppp -direct pppmyisp</programlisting> + + <para>Se hai intenzione di creare uno script di login separato per + un utente potresti usare <command>sendmail -qRexample.com</command> + nello script precedente. Questo forzerà a processare + immediatamente tutta la posta per <hostid + role="domainname">example.com</hostid> situata nella tua + coda.</para> + + <para>Segue un'ulteriore sottigliezza della situazione:</para> + + <para>Messaggio rubato dalla &a.isp;.</para> + + <programlisting>> forniamo l'MX secondario per un cliente. Il cliente si connette +> automaticamente ai nostri servizi molte volte al giorno per ottenere la +> posta per il suo MX primario (non chiamiamo il suo server quando arriva +> posta per il suo dominio). Il nostro sendmail processa la posta in coda +> ogni 30 minuti. Attualmente il cliente sta 30 minuti online per assicurarsi +> che tutta la posta vada all'MX primario. +> +> Esiste un comando che permetta di configurare sendmail in modo tale da +> spedire tutta la posta in quel momento? Naturalmente l'utente non ha +> privilegi di root sulla nostra macchina. + +Nella sezione <quote>privacy flags</quote> di sendmail.cf, c'è una +definizione Opgoaway,restrictqrun + +Rimuovi restrictqrun per permettere a utenti non root di avviare l'elaborazione +della coda. Inoltre potresti risistemare gli MX. Noi siamo l'MX primario per i +nostri clienti come questo, e abbiamo definito: + +# Se siamo il miglior MX per un host, prova direttamente invece di generare +# errori di configurazione locale. +OwTrue + +In questo modo un server remoto consegnerà direttamente a te, senza +tentare di connettersi al cliente. Dopodiché tu spedisci al tuo cliente. +Funziona solamente con gli <quote>host</quote>, quindi hai bisogno che il tuo +cliente chiami la sua macchina di posta <quote>customer.com</quote> così come +<quote>nomehost.customer.com</quote> nel DNS. +Basta mettere un record A nel DNS per <quote>customer.com</quote>.</programlisting> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para>Perché continuo a ottenere l'errore <errorname>Relaying + Denied</errorname> quando spedisco posta da altri host?</para> + </question> + + <answer> + <para>Con l'installazione di default di FreeBSD, + <application>sendmail</application> viene configurato in modo tale + da permettere di spedire posta solamente dall'host sul quale + è in esecuzione. Per esempio, se c'è installato un + server <acronym>POP</acronym>, allora gli utenti saranno in grado di + controllare la posta da scuola, dal lavoro, o da altre postazioni + remote ma tuttavia non potranno inviare messaggi di posta + all'esterno da postazioni esterne. Tipicamente, pochi istanti dopo + il tentativo, verrà spedita una email da + <application>MAILER-DAEMON</application> con il messaggio di errore + <errorname>5.7 Relaying Denied</errorname>.</para> + + <para>Esistono diversi modi per aggirare questo problema. La + soluzione più semplice è mettere il proprio + indirizzo assegnato dall'ISP nel file che contiene i domini + a cui viene permesso di effettuare il relay, + <filename>/etc/mail/relay-domains</filename>. Un modo veloce + per far questo può essere:</para> + + <screen>&prompt.root; <userinput>echo "your.isp.example.com" > /etc/mail/relay-domains</userinput></screen> + + <para>Dopo aver creato o modificato questo file devi riavviare + <application>sendmail</application>. Questa soluzione è + ideale se sei un amministratore del server e non desideri + spedire posta localmente, o se vorresti usare un client/sistema + punta e clicca su un'altra macchina o perfino su un altro ISP. + Inoltre è molto utile se hai solo uno o due account + di posta configurati. Se ci sono molti indirizzi da aggiungere, + puoi semplicemente aprire questo file con il tuo editor di testo + preferito e aggiungere i domini, uno per riga:</para> + + <programlisting>your.isp.example.com +other.isp.example.net +users-isp.example.org +www.example.org</programlisting> + + <para>Ora l'invio della posta tramite il tuo sistema, da parte di + qualche host in lista (a condizione che l'utente abbia un account + sul tuo sistema), avrà successo. Questo è un buon + metodo per permettere agli utenti di spedire posta dal tuo sistema + in modo remoto senza dare la possibilità a qualcuno di + spedire SPAM tramite il tuo sistema.</para> + </answer> + </qandaentry> + </qandaset> + </sect1> + + <sect1 id="mail-advanced"> + <title>Argomenti Avanzati</title> + + <para>La seguente sezione tratta argomenti più complicati come + l'organizzazione e la configurazione della posta per tutto il tuo + dominio.</para> + + <sect2 id="mail-config"> + <title>Configurazione di Base</title> + + <indexterm> + <primary>email</primary> + <secondary>configurazione</secondary> + </indexterm> + + <para>Dalla macchina FreeBSD, dovresti essere in grado di spedire posta a + host esterni a condizione di aver sistemato + <filename>/etc/resolv.conf</filename> o di avere in esecuzione un + proprio server dei nomi. Se vuoi che la posta per il tuo host sia + consegnata all'MTA (es., <application>sendmail</application>) in + esecuzione sul tuo host FreeBSD, esistono due metodi per farlo:</para> + + <itemizedlist> + <listitem> + <para>Eseguire un proprio server dei nomi e avere un proprio dominio. + Per esempio, <hostid role="domainname">FreeBSD.org</hostid></para> + </listitem> + + <listitem> + <para>Ricevere la posta direttamente sul tuo host. Questo viene fatto + consegnando la posta direttamente al nome DNS corrente della tua + macchina. Per esempio, <hostid + role="fqdn">example.FreeBSD.org</hostid>.</para> + </listitem> + </itemizedlist> + + <indexterm><primary>SMTP</primary></indexterm> + + <para>Indipendentemente dal metodo scelto, affinché la posta + possa essere consegnata direttamente al tuo host, devi avere un + indirizzo IP statico permanente (non un indirizzo dinamico, come avviene + nella maggior parte delle configurazioni dial-up di PPP). Se sei + dietro a un firewall, devi abilitare il traffico SMTP in entrata. Se + vuoi ricevere la posta direttamente sul tuo host, devi verificare una di + queste due cose:</para> + + <itemizedlist> + <indexterm><primary>record MX</primary></indexterm> + + <listitem> + <para>Assicurati che il record MX (con il numero più basso) + relativo al tuo host nel tuo DNS punti all'indirizzo IP del tuo + host.</para> + </listitem> + + <listitem> + <para>Assicurati che non ci siano record MX nel tuo DNS per il tuo + host.</para> + </listitem> + </itemizedlist> + + <para>Entrambi questi due metodi ti permettono di ricevere posta + direttamente sul tuo host.</para> + + <para>Prova questi comandi:</para> + + <screen>&prompt.root; <userinput>hostname</userinput> +example.FreeBSD.org +&prompt.root; <userinput>host example.FreeBSD.org</userinput> +example.FreeBSD.org has address 204.216.27.XX</screen> + + <para>Se ottieni un risultato simile, l'invio diretto a + <email role="nolink">yourlogin@example.FreeBSD.org</email> dovrebbe + funzionare senza problemi (assumendo che + <application>sendmail</application> sia correttamente in esecuzione + su <hostid role="fqdn">example.FreeBSD.org</hostid>).</para> + + <para>Se invece vedi qualcosa di simile a questo:</para> + + <screen>&prompt.root; <userinput>host example.FreeBSD.org</userinput> +example.FreeBSD.org has address 204.216.27.XX +example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org</screen> + + <para>Tutta la posta spedita al tuo host (<hostid + role="fqdn">example.FreeBSD.org</hostid>) finirà per essere + raccolta su <hostid>hub</hostid> sotto lo stesso nome utente invece + di essere spedita direttamente al tuo host.</para> + + <para>L'informazione precedente viene gestita dal tuo server DNS. Il + record DNS che riporta l'informazione di instradamento della posta + è l'elemento <emphasis>M</emphasis>ail + e<emphasis>X</emphasis>change. Se non esistono record MX, la posta + sarà consegnata direttamente all'host attraverso il suo + indirizzo IP.</para> + + <para>L'elemento MX per <hostid role="fqdn">freefall.FreeBSD.org</hostid> + in passato assomigliava a questo:</para> + + <programlisting>freefall MX 30 mail.crl.net +freefall MX 40 agora.rdrop.com +freefall MX 10 freefall.FreeBSD.org +freefall MX 20 who.cdrom.com</programlisting> + + <para>Come puoi vedere, <hostid>freefall</hostid> aveva molti elementi MX. + Il numero MX più basso è l'host che, se disponibile, + riceve direttamente la posta; se per qualche ragione questo non è + accessibile, gli altri (qualche volta chiamati + <quote>MX di backup</quote>) accettano i messaggi temporaneamente, + e li passano all'host attivo con numero inferiore, fino all'host + con il numero più basso.</para> + + <para>I server MX alternativi dovrebbero avere connessioni Internet + indipendenti dalla propria al fine di risultare più utili. + Il tuo ISP o un tuo amico non dovrebbero avere problemi + a darti questo servizio.</para> + </sect2> + + <sect2 id="mail-domain"> + <title>Posta per il Tuo Dominio</title> + + <para>Per organizzare un server di posta hai bisogno che la posta inviata + alle stazioni di lavoro sia ricevuta direttamente sul server di posta. + Sostanzialmente, hai bisogno di <quote>richiedere</quote> che la posta + per i nomi host del tuo dominio (in questo caso <hostid + role="fqdn">*.FreeBSD.org</hostid>) sia deviata al server di posta in + modo tale che i tuoi utenti possono raccogliere la loro posta sul + server di posta principale.</para> + + <indexterm><primary>DNS</primary></indexterm> + + <para>Per rendere la vita più facile, dovrebbe esistere su + entrambe le macchine un account utente con lo stesso <emphasis>nome + utente</emphasis>. Usa &man.adduser.8; per farlo.</para> + + <para>La macchina server di posta che utilizzerai deve essere + designata come la macchina che scambia la posta per tutte le postazioni + sulla rete. Questo viene realizzato attraverso la configurazione del + DNS in modo simile a quanto segue:</para> + + <programlisting>example.FreeBSD.org A 204.216.27.XX ; Stazione di lavoro + MX 10 hub.FreeBSD.org ; Server di posta</programlisting> + + <para>In questo modo la posta per la stazione di lavoro sarà + reindirizzata al server di posta senza preoccuparsi dove punti il + record A. La posta viene inviata all'host MX.</para> + + <para>Non puoi effettuare queste modifiche da solo a meno che non hai in + esecuzione un tuo server DNS. Se non puoi eseguire un server DNS, + consulta il tuo ISP o chiunque ti fornisca il servizio DNS.</para> + + <para>Se stai facendo dell'hosting di posta elettronica virtuale, le + seguenti informazioni ti torneranno utili. In questo esempio, assumiamo + che hai un cliente con un proprio dominio, in questo caso <hostid + role="domainname">customer1.org</hostid>, e vuoi che tutta la posta + per <hostid role="domainname">customer1.org</hostid> sia spedita alla + tua macchina server di posta <hostid + role="fqdn">mail.myhost.com</hostid>. + L'elemento nel tuo DNS dovrebbe assomigliare a questo:</para> + + <programlisting>customer1.org MX 10 mail.myhost.com</programlisting> + + <para><emphasis>Non</emphasis> hai bisogno di un record A per <hostid + role="domainname">customer1.org</hostid> se vuoi solamente gestire + la posta per tale dominio</para> + + <note> + <para>Sii consapevole che un ping su <hostid + role="domainname">customer1.org</hostid> non funzionerà se + non esiste un record A per tale dominio.</para> + </note> + + <para>L'ultima cosa che devi fare è indicare a + <application>sendmail</application>, posto sulla tua macchina server, + per quali domini e/o host deve accettare posta. Esistono + differenti modi per farlo. I seguenti due funzionano entrambi:</para> + + <itemizedlist> + <listitem> + <para>Se usi <literal>FEATURE(use_cw_file)</literal> aggiungi gli host + al tuo file <filename>/etc/mail/local-host-names</filename>. Se usi + una versione di <application>sendmail</application> precedente + alla 8.10, il file da usare è + <filename>/etc/sendmail.cw</filename>.</para> + </listitem> + + <listitem> + <para>Se usi la versione di <application>sendmail</application> 8.10 + o superiore aggiungi la riga <literal>Cwyour.host.com</literal> al + tuo <filename>/etc/sendmail.cf</filename> o + <filename>/etc/mail/sendmail.cf</filename>.</para> + </listitem> + </itemizedlist> + </sect2> + </sect1> + + <sect1 id="SMTP-UUCP"> + <title>SMTP con UUCP</title> + + <para>La configurazione di <application>sendmail</application> di default + su FreeBSD è designata per siti che si collegano direttamente a + Internet. I siti che vogliono scambiarsi lo loro posta tramite + UUCP devono installare un altro file di configurazione di + <application>sendmail</application>.</para> + + <para>Editare a mano il file <filename>/etc/mail/sendmail.cf</filename> + è materia da esperti. La versione 8 di + <application>sendmail</application> genera file di configurazione tramite + la preelaborazione di &man.m4.1;, dove l'attuale configurazione avviene + su un livello di astrazione più alto. I file di configurazione + di &man.m4.1; possono essere trovati sotto + <filename>/usr/share/sendmail/cf</filename>. Il file + <filename>README</filename> nella directory <filename>cf</filename> + può servire come introduzione di base alla configurazione + di &man.m4.1;.</para> + + <para>Il miglior modo per supportare la consegna UUCP è usare la + caratteristica <literal>mailertable</literal>. Questa crea un database + che <application>sendmail</application> può usare per prendere le + decisioni di instradamento.</para> + + <para>Prima di tutto, devi creare il tuo file <filename>.mc</filename>. + La directory <filename>/usr/share/sendmail/cf/cf</filename> + contiene alcuni esempi. Assumendo che tu abbia chiamato il tuo file + <filename>foo.mc</filename>, tutto quello che devi fare per convertirlo + in un valido <filename>sendmail.cf</filename> è:</para> + + <screen>&prompt.root; <userinput>cd /etc/mail</userinput> +&prompt.root; <userinput>make foo.cf</userinput> +&prompt.root; <userinput>cp foo.cf /etc/mail/sendmail.cf</userinput></screen> + + <para>Un tipico file <filename>.mc</filename> potrebbe assomigliare a + questo:</para> + + <programlisting>VERSIONID(`<replaceable>Il tuo numero di versione</replaceable>') OSTYPE(bsd4.4) + +FEATURE(accept_unresolvable_domains) +FEATURE(nocanonify) +FEATURE(mailertable, `hash -o /etc/mail/mailertable') + +define(`UUCP_RELAY', <replaceable>il.tuo.relay.uucp</replaceable>) +define(`UUCP_MAX_SIZE', 200000) +define(`confDONT_PROBE_INTERFACES') + +MAILER(local) +MAILER(smtp) +MAILER(uucp) + +Cw <replaceable>il.tuo.nome.host.alias</replaceable> +Cw <replaceable>iltuonodouucp.UUCP</replaceable></programlisting> + + <para>Le righe contenenti le caratteristiche + <literal>accept_unresolvable_domains</literal>, + <literal>nocanonify</literal>, and + <literal>confDONT_PROBE_INTERFACES</literal> impediscono l'uso del DNS + durante la consegna della posta. La clausola + <literal>UUCP_RELAY</literal> è necessaria per supportare la + consegna UUCP. Metti semplicemente un nome host di Internet che è + in grado di gestire indirizzi di pseudo-domini .UUCP; molto + probabilmente, metterai il relay del tuo ISP.</para> + + <para>Una volta fatto questo, hai bisogno del file + <filename>/etc/mail/mailertable</filename>. Se hai solo un collegamento + per l'esterno che viene usato per tutta la tua posta, la seguente riga + sarà sufficiente:</para> + + <programlisting># +# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable +. uucp-dom:<replaceable>il.tuo.relay.uucp</replaceable></programlisting> + + <para>Un esempio più complesso potrebbe essere simile a + questo:</para> + + <programlisting># +# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable +# +horus.interface-business.de uucp-dom:horus +.interface-business.de uucp-dom:if-bus +interface-business.de uucp-dom:if-bus +.heep.sax.de smtp8:%1 +horus.UUCP uucp-dom:horus +if-bus.UUCP uucp-dom:if-bus +. uucp-dom:</programlisting> + + <para>Le prime tre righe gestiscono dei casi speciali dove la posta + indirizzata a quel dominio non dovrebbe essere spedita tramite + l'instradamento di default, ma piuttosto tramite alcuni UUCP di confine + al fine di <quote>accorciare</quote> il percorso di consegna. La quarta + riga gestisce la posta per il dominio Ethernet locale la quale può + essere consegnata usando SMTP. Infine, gli UUCP di confine sono + menzionati con la notazione a pseudo-dominio .UUCP, per permettere a un + <literal><replaceable>uucp-diconfine + </replaceable>!<replaceable>destinatario</replaceable></literal> + di sovrascrivere le regole di default. L'ultima riga è sempre un + singolo punto, a cui corrisponde ogni altra cosa e che rappresenta la + consegna UUCP tramite l'UUCP di confine che viene usato come il tuo + gateway di posta universale verso il mondo. Tutti i nomi dei nodi dietro + alla parola <literal>uucp-dom:</literal> devono essere validi UUCP di + confine, come puoi verificare usando il comando + <literal>uuname</literal>.</para> + + <para>Si ricorda che questo file deve essere convertito in un file database + DBM prima di essere usato. La riga di comando che realizza ciò + è messa come un commento in cima al file + <filename>mailertable</filename>. + Devi sempre eseguire quel comando ogni volta che modifichi il file + <filename>mailertable</filename>.</para> + + <para>Ultimo suggerimento: se non sei sicuro che alcuni instradamenti di + posta potrebbero funzionare, ricordati l'opzione <option>-bt</option> + di <application>sendmail</application>. Questa avvia + <application>sendmail</application> in <emphasis>modalità test + indirizzo</emphasis>; digita semplicemente <literal>3,0</literal>, + seguito dall'indirizzo su cui vuoi verificare l'instradamento della posta. + L'ultima riga ti informa quale agente di posta interno è stato + utilizzato, quale host di destinazione questo agente contatterà, e + l'indirizzo (molto probabilmente tradotto). Lascia questa modalità + digitando <keycombo action="simul"> + <keycap>Ctrl</keycap> + <keycap>D</keycap> + </keycombo>.</para> + + <screen>&prompt.user; <userinput>sendmail -bt</userinput> +ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) +Enter <ruleset> <address> +<prompt>></prompt> <userinput>3,0 foo@example.com</userinput> +canonify input: foo @ example . com +... +parse returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceable> $: foo < @ example . com . > +<prompt>></prompt> <userinput>^D</userinput></screen> + </sect1> + + <sect1 id="outgoing-only"> + <sect1info> + <authorgroup> + <author> + <firstname>Bill</firstname> + + <surname>Moran</surname> + + <contrib>Contributo di </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Configurazione del Sistema di Posta solo per l'Invio</title> + + <para>Esistono molti casi in cui vorresti avere la possibilità di + inviare la posta attraverso un relay. Alcuni esempi sono:</para> + + <itemizedlist> + <listitem> + <para>Il tuo computer è una macchina desktop, tuttavia vorresti + essere in grado di usare programmi come &man.send-pr.1;. Per fare + ciò, dovresti usare il relay di posta del tuo ISP.</para> + </listitem> + + <listitem> + <para>Il computer è un server che non gestisce localmente la + posta, ma demanda la gestione di tutta la posta ad un relay + inoltrandola in modo opportuno.</para> + </listitem> + </itemizedlist> + + <para>La maggior parte degli <acronym>MTA</acronym> sono in grado di + soddisfare questa particolare richiesta. Sfortunatamente, configurare + in modo opportuno un <acronym>MTA</acronym> standard affinchè + permetta solo l'inoltro della posta può essere un compito molto + oneroso. Usare applicazioni come <application>sendmail</application> e + <application>postfix</application> per questo fine risulta spesso troppo + eccessivo.</para> + + <para>Inoltre, alcuni servizi di accesso a Internet prevedono nel contratto + l'impossibilità da parte del cliente di usare un <quote>server di + posta</quote>.</para> + + <para>Il modo più facile per colmare questa necessità è + installare il port <filename role="package">mail/ssmtp</filename>. + Esegui i seguenti comandi come <username>root</username>:</para> + + <screen>&prompt.root; <userinput>cd /usr/ports/mail/ssmtp</userinput> +&prompt.root; <userinput>make install replace clean</userinput></screen> + + <para>Una volta installato, il port <filename + role="package">mail/ssmtp</filename> può essere configurato con + quattro righe nel file + <filename>/usr/local/etc/ssmtp/ssmtp.conf</filename>:</para> + + <programlisting>root=il_tuo_indirizzo_di_posta_reale +mailhub=mail.esempio.com +rewriteDomain=esempio.com +hostname=_HOSTNAME_</programlisting> + + <para>Assicurati di usare il tuo indirizzo di posta per la variabile + <username>root</username>. Inserisci il server di posta di inoltro del + tuo ISP al posto di <hostid role="fqdn">mail.esempio.com</hostid> (alcuni + ISP lo chiamano come il <quote>server di posta in uscita</quote> o il + <quote>server SMTP</quote>).</para> + + <para>Assicurati di disabilitare <application>sendmail</application>, + incluso il servizio di posta in uscita. Guarda la + <xref linkend="mail-disable-sendmail"/> per maggiori dettagli.</para> + + <para>Il port <filename role="package">mail/ssmtp</filename> ha altre + opzioni disponibili. Guarda il file di configurazione di esempio + <filename>/usr/local/etc/ssmtp</filename> e la pagina man di + <application>ssmtp</application> per alcuni esempi e maggiori + informazioni.</para> + + <para>Configurando <application>ssmtp</application> in questo modo + permetterai ai programmi sul tuo computer che necessitano di spedire posta + di funzionare correttamente, senza violare le politiche del tuo ISP e + senza permettere che il tuo computer sia utilizzato per l'inoltro di + spam.</para> + </sect1> + + <sect1 id="SMTP-dialup"> + <title>Uso della Posta con una Connessione Dialup</title> + + <para>Se hai un indirizzo IP statico, non hai bisogno di adattare nulla alla + configurazione di default. Imposta come nome host il nome Internet che + ti è stato assegnato e <application>sendmail</application> + farà il resto.</para> + + <para>Se hai un indirizzo IP assegnato in modo dinamico e usi una + connessione PPP dialup per Internet, allora probabilmente avrai una + casella di posta sul server di posta del tuo ISP. Assumiamo che il + dominio del tuo ISP sia <hostid role="domainname">example.net</hostid>, + che il tuo nome utente sia <username>user</username>, che hai chiamato + la tua macchina <hostid role="fqdn">bsd.home</hostid>, e che il tuo ISP + ti ha detto che puoi usare <hostid + role="fqdn">relay.example.net</hostid> come relay per la posta.</para> + + <para>Per ricevere la posta dalla tua casella, devi installare un agente + di ricupero. L'utility <application>fetchmail</application> è + una buona scelta poichè supporta diversi tipi di protocolli. + Questo programma è disponibile come package o dalla collezione dei + port (<filename role="package">mail/fetchmail</filename>). + Di solito, il tuo <acronym>ISP</acronym> fornirà + <acronym>POP</acronym>. Se stai usando <acronym>PPP</acronym> a livello + utente, puoi prelevare automaticamente la tua posta quando viene stabilita + una connessione a Internet mettendo la seguente riga in + <filename>/etc/ppp/ppp.linkup</filename>:</para> + + <programlisting>MYADDR: +!bg su user -c fetchmail</programlisting> + + <para>Se stai usando <application>sendmail</application> (come mostrato + sotto) per consegnare posta ad account non locali, probabilmente vorrai + che <application>sendmail</application> processi la tua coda di posta + non appena viene stabilita una connessione ad Internet. Per far questo, + metti il seguente comando dopo il comando <command>fetchmail</command> in + <filename>/etc/ppp/ppp.linkup</filename>.</para> + + <programlisting>!bg su user -c "sendmail -q"</programlisting> + + <para>Assumiamo che tu abbia un account per <username>user</username> su + <hostid role="fqdn">bsd.home</hostid>. Nella directory home di + <username>user</username> su <hostid role="fqdn">bsd.home</hostid>, crea + il file <filename>.fetchmailrc</filename> così composto:</para> + + <programlisting>poll example.net protocol pop3 fetchall pass MySecret</programlisting> + + <para>Questo file non dovrebbe essere leggibile da nessuno ad eccezione di + <username>user</username> poichè contiene la password + <literal>MySecret</literal>.</para> + + <para>Per spedire la posta con il corretto header <literal>from:</literal>, + devi indicare a <application>sendmail</application> di usare + <email>user@example.net</email> piuttosto che + <email role="nolink">user@bsd.home</email>. Inoltre vorrai indicare a + <application>sendmail</application> di spedire tutta la posta tramite + <hostid role="fqdn">relay.example.net</hostid>, permettendo una veloce + trasmissione della posta.</para> + + <para>Il seguente file <filename>.mc</filename> dovrebbe essere + sufficiente:</para> + + <programlisting>VERSIONID(`bsd.home.mc version 1.0') +OSTYPE(bsd4.4)dnl +FEATURE(nouucp)dnl +MAILER(local)dnl +MAILER(smtp)dnl +Cwlocalhost +Cwbsd.home +MASQUERADE_AS(`example.net')dnl +FEATURE(allmasquerade)dnl +FEATURE(masquerade_envelope)dnl +FEATURE(nocanonify)dnl +FEATURE(nodns)dnl +define(`SMART_HOST', `relay.example.net') +Dmbsd.home +define(`confDOMAIN_NAME',`bsd.home')dnl +define(`confDELIVERY_MODE',`deferred')dnl</programlisting> + + <para>Fai riferimento alla precedente sezione per i dettagli su come + trasformare questo file <filename>.mc</filename> nel file + <filename>sendmail.cf</filename>. Inoltre, non dimenticarti di riavviare + <application>sendmail</application> dopo aver aggiornato il file + <filename>sendmail.cf</filename>.</para> + </sect1> + + <sect1 id="SMTP-Auth"> + <sect1info> + <authorgroup> + <author> + <firstname>James</firstname> + + <surname>Gorham</surname> + + <contrib>Scritto da </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Autenticazione SMTP</title> + + <para>Avere un'Autenticazione <acronym>SMTP</acronym> operativa sul tuo + server di posta porta numerosi benefici. L'Autenticazione + <acronym>SMTP</acronym> aggiunge un ulteriore strato di sicurezza a + <application>sendmail</application>, e ha il vantaggio di dare agli + utenti mobili che cambiano host la possibilità di usare lo stesso + server di posta senza avere la necessità di riconfigurare ogni + volta i settaggi dei loro programmi client di posta.</para> + + <procedure> + <step> + <para>Installa dai port <filename + role="package">security/cyrus-sasl2</filename>. Puoi trovare questo + port in <filename role="package">security/cyrus-sasl2</filename>. + Il port <filename role="package">security/cyrus-sasl2</filename> + ha diverse opzioni di compilazione. Per il metodo di + autenticazione SMTP che useremo, assicurati che l'opzione + <option>LOGIN</option> non sia disabilitata.</para> + </step> + + <step> + <para>Dopo aver installato <filename + role="package">security/cyrus-sasl2</filename>, edita + <filename>/usr/local/lib/sasl2/Sendmail.conf</filename> + (o crealo se non esiste) e aggiungi la seguente riga:</para> + + <programlisting>pwcheck_method: saslauthd</programlisting> + </step> + + <step> + <para>Quindi, installa <filename + role="package">security/cyrus-sasl2-saslauthd</filename>, + edita <filename>/etc/rc.conf</filename> aggiungendo la + riga seguente:</para> + + <programlisting>saslauthd_enable="YES"</programlisting> + + <para>ed infine avvia il demone saslauthd:</para> + + <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/saslauthd start</userinput></screen> + + <para>Questo demone serve come mediatore con + <application>sendmail</application> per autenticare gli utenti tramite + il proprio database <filename>passwd</filename> di FreeBSD. Questo + procedimento evita di creare un nuovo set di nomi utenti e password + per ogni utente che necessita di usare l'autenticazione + <acronym>SMTP</acronym>, mantenendo la password di login uguale alla + password di posta.</para> + </step> + + <step> + <para>Ora aggiungi le seguenti righe in + <filename>/etc/make.conf</filename>:</para> + + <programlisting>SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL +SENDMAIL_LDFLAGS=-L/usr/local/lib +SENDMAIL_LDADD=-lsasl2</programlisting> + + <para>Queste righe daranno, in fase di compilazione di + <application>sendmail</application>, le giuste opzioni di + configurazione per linkare a <filename + role="package">cyrus-sasl2</filename>. Assicurati che <filename + role="package">cyrus-sasl2</filename> sia installato prima di + ricompilare <application>sendmail</application>.</para> + </step> + + <step> + <para>Ricompila <application>sendmail</application> eseguendo i + seguenti comandi:</para> + + <screen>&prompt.root; <userinput>cd /usr/src/lib/libsmutil</userinput> +&prompt.root; <userinput>make cleandir && make obj && make</userinput> +&prompt.root; <userinput>cd /usr/src/lib/libsm</userinput> +&prompt.root; <userinput>make cleandir && make obj && make</userinput> +&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail</userinput> +&prompt.root; <userinput>make cleandir && make obj && make && make install</userinput></screen> + + <para>Se <filename>/usr/src</filename> non ha subito enormi cambiamenti + e se le librerie condivise di cui si ha bisogno sono disponibili, la + compilazione di <application>sendmail</application> non dovrebbe + avere problemi.</para> + </step> + + <step> + <para>Dopo aver compilato e reinstallato + <application>sendmail</application>, edita il tuo file + <filename>/etc/mail/freebsd.mc</filename> (o qualunque altro file che + usi come file <filename>.mc</filename>. Molti amministratori + preferiscono usare, per unicità, l'output di &man.hostname.1; + come nome del file <filename>.mc</filename>). Aggiungi le seguenti + righe:</para> + + <programlisting>dnl set SASL options +TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl +define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl</programlisting> + + <para>Queste opzioni configurano i vari metodi che + <application>sendmail</application> ha a disposizione per autenticare + gli utenti. Se vuoi usare un metodo diverso da + <application>pwcheck</application>, guarda la documentazione inclusa + nel package.</para> + </step> + + <step> + <para>Per finire, esegui &man.make.1; in <filename>/etc/mail</filename>. + Questo eseguirà il tuo nuovo file <filename>.mc</filename> e + creerà un file <filename>.cf</filename> di nome + <filename>freebsd.cf</filename> (o con il nome che hai usato per il + file <filename>.mc</filename>). Quindi esegui il comando + <command>make install restart</command>, che copierà il file in + <filename>sendmail.cf</filename>, e riavvierà correttamente + <application>sendmail</application>. Per maggiori informazioni su + questa procedura, dovresti prendere come riferimento + <filename>/etc/mail/Makefile</filename>.</para> + </step> + </procedure> + + <para>Se tutto è andato per il verso giusto, dovresti essere in grado + di inviare un messaggio di prova dopo aver inserito le informazioni di + login nel programma client di posta. Per ulteriori indagini, setta il + <option>LogLevel</option> di <application>sendmail</application> a 13 e + guarda il file <filename>/var/log/maillog</filename> per eventuali + errori.</para> + + <para>Per ulteriori informazioni, guarda la pagina riguardante <ulink + url="http://www.sendmail.org/~ca/email/auth.html">l'autenticazione + <acronym>SMTP</acronym></ulink> di + <application>sendmail</application>.</para> + </sect1> + + <sect1 id="mail-agents"> + <sect1info> + <authorgroup> + <author> + <firstname>Marc</firstname> + + <surname>Silver</surname> + + <contrib>Contributo di </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Mail User Agent</title> + + <indexterm> + <primary>Mail User Agent</primary> + </indexterm> + + <para>Un Mail User Agent (<acronym>MUA</acronym>) è un'applicazione + che viene usata per inviare e ricevere la posta elettronica. Man mano + che la posta <quote>evolve</quote> e diventa più complessa, + gli <acronym>MUA</acronym> diventano sempre più potenti nel modo + in cui essi interagiscono con la posta elettronica; ciò fornisce + agli utenti maggiori funzionalità e flessibilità. + &os; supporta svariati mail user agent, che possono essere facilmente + installati usando la <link linkend="ports">FreeBSD Ports + Collection</link>. Gli utenti possono scegliere tra client di posta + con un'interfaccia grafica come <application>evolution</application> o + <application>balsa</application>, client basati sulla console come + <application>mutt</application>, <application>pine</application> + e <command>mail</command>, oppure interfacce web utilizzate da alcune + grandi organizzazioni.</para> + + <sect2 id="mail-command"> + <title>mail</title> + + <para>&man.mail.1; è il Mail User Agent (<acronym>MUA</acronym>) + di default su &os;. Si tratta di un <acronym>MUA</acronym> basato sulla + console che offre tutte le funzionalità di base richieste per + inviare e ricevere messaggi di posta testuali, anche se è + limitato nelle capacità di gestione degli allegati, e può + solo supportare caselle di posta locali.</para> + + <para>Sebbene <command>mail</command> non supporta in modo nativo + interazioni con server <acronym>POP</acronym> o <acronym>IMAP</acronym>, + queste caselle di posta possono essere scaricate nel file + <filename>mbox</filename> locale usando un'applicazione come + <application>fetchmail</application>, che verrà discussa + più tardi in questo capitolo (<xref + linkend="mail-fetchmail"/>).</para> + + <para>Al fine di inviare o ricevere la posta, invoca semplicemente il + comando <command>mail</command> come nel seguente esempio:</para> + + <screen>&prompt.user; <userinput>mail</userinput></screen> + + <para>I contenuti delle caselle di posta degli utenti in + <filename class="directory">/var/mail</filename> sono letti + automaticamente dall'utility <command>mail</command>. Se la casella + di posta è vuota, l'utility esce con un messaggio che indica che + non è stato trovato nessun messaggio di posta. Una volta che + la casella di posta è stata letta, viene avviata l'interfaccia + dell'applicazione, e vengono visualizzati una lista di messaggi. + I messaggi sono numerati in modo automatico, come nel seguente + esempio:</para> + + <screen>Mail version 8.1 6/6/93. Type ? for help. +"/var/mail/marcs": 3 messages 3 new +>N 1 root@localhost Mon Mar 8 14:05 14/510 "test" + N 2 root@localhost Mon Mar 8 14:05 14/509 "user account" + N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"</screen> + + <para>I messaggi possono ora essere letti usando il comando + <keycap>t</keycap> di <command>mail</command>, seguito dal numero + del messaggio che si vuole visualizzare. In questo esempio, leggeremo + il primo messaggio di posta:</para> + + <screen>& <userinput>t 1</userinput> +Message 1: +From root@localhost Mon Mar 8 14:05:52 2004 +X-Original-To: marcs@localhost +Delivered-To: marcs@localhost +To: marcs@localhost +Subject: test +Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST) +From: root@localhost (Charlie Root) + +Questo è un messaggio di prova, per favore rispondi se lo ricevi.</screen> + + <para>Come puoi vedere nell'esempio precedente, il tasto + <keycap>t</keycap> visualizza il messaggio completo di tutte le sue + intestazioni (header). Per visualizzare ancora la lista dei messaggi, + puoi usare il tasto <keycap>h</keycap>.</para> + + <para>Se il messaggio di posta richiede una replica, puoi usare + <command>mail</command> per rispondere, usando il tasto + <keycap>R</keycap> o <keycap>r</keycap> di <command>mail</command>. + Il tasto <keycap>R</keycap> dice a <command>mail</command> di rispondere + solamente al mittente del messaggio, mentre <keycap>r</keycap> replica + non solo al mittente, ma anche agli altri eventuali destinatari del + messaggio originario. Puoi anche impartire quei comandi con un + suffisso relativo al numero di messaggio per il quale intendi + rispondere. Fatto ciò, inserisci la tua risposta, segnalando la + fine del messaggio con un singolo punto (<keycap>.</keycap>) su una + nuova linea. Ecco un esempio:</para> + + <screen>& <userinput>R 1</userinput> +To: root@localhost +Subject: Re: test + +<userinput>Thank you, I did get your email. +.</userinput> +EOT</screen> + + <para>Per inviare un nuovo messaggio, puoi usare il tasto + <keycap>m</keycap>, seguito dall'indirizzo di posta elettronica del + destinatario. Puoi specificare più destinatari separando ogni + indirizzo da una virgola (<keycap>,</keycap>). Quindi si inserisce + il soggetto del messaggio (il subject), seguito dal contenuto del + messaggio stesso. La fine del messaggio deve essere specificata da un + singolo punto (<keycap>.</keycap>) su una nuova linea.</para> + + <screen>& <userinput>mail root@localhost</userinput> +Subject: <userinput>Ho imparato ad usare mail + +Ora posso inviare e ricevere posta usando mail ... :) +.</userinput> +EOT</screen> + + <para>Anche se in <command>mail</command>, il comando <keycap>?</keycap> + può essere usato per invocare l'help in linea, la pagina man + &man.mail.1; dovrebbe essere consultata per ottenere maggiori + informazioni.</para> + + <note> + <para>Come menzionato in precedenza, il comando &man.mail.1; non + è stato originariamente progettato per gestire gli allegati, e + quindi il supporto per essi è proprio misero. Nuovi + <acronym>MUA</acronym> come <application>mutt</application> gestiscono + gli allegati in un modo più intelligente. Tuttavia se desideri + comunque usare il comando <command>mail</command>, dovresti + considerare l'uso del port <filename + role="package">converters/mpack</filename>.</para> + </note> + </sect2> + + <sect2 id="mutt-command"> + <title>mutt</title> + + <para><application>mutt</application> è un Mail User Agent leggero + ma molto potente, con caratteristiche eccellenti, alcune delle + quali sono:</para> + + <itemizedlist> + <listitem> + <para>Abilità nella gestione di thread di messaggi;</para> + </listitem> + + <listitem> + <para>Supporto PGP per la firma digitale e per criptare i messaggi di + posta;</para> + </listitem> + + <listitem> + <para>Supporto al MIME;</para> + </listitem> + + <listitem> + <para>Supporto del formato Maildir;</para> + </listitem> + + <listitem> + <para>Altamente personalizzabile.</para> + </listitem> + </itemizedlist> + + <para>Tutte queste caratteristiche fanno di + <application>mutt</application> uno dei maggiori user agent avanzati + oggi disponibili. Guarda <ulink url="http://www.mutt.org"></ulink> per + maggiori informazioni su <application>mutt</application>.</para> + + <para>La versione stabile di <application>mutt</application> può + essere installata usando il port <filename + role="package">mail/mutt</filename>, mentre la versione corrente + di sviluppo può essere installata tramite il port <filename + role="package">mail/mutt-devel</filename>. Una volta che il port + è stato installato, <application>mutt</application> può + essere avviato usando il seguente comando:</para> + + <screen>&prompt.user; <userinput>mutt</userinput></screen> + + <para><application>mutt</application> in modo automatico legge il + contenuto della casella di posta dell'utente in <filename + class="directory">/var/mail/</filename> e ne visualizza il contenuto. + Se non ci sono messaggi nella casella di posta dell'utente, allora + <application>mutt</application> si mette in attesa di comandi da parte + dell'utente. L'esempio qui sotto mostra <application>mutt</application> + che visualizza una lista di messaggi:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/mutt1" format="PNG"/> + </imageobject> + </mediaobject> + + <para>Per leggere un messaggio, selezionalo usando i tasti cursore, e + premi il tasto <keycap>Invio</keycap>. Segue un esempio di come + <application>mutt</application> visualizza un messaggio:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/mutt2" format="PNG"/> + </imageobject> + </mediaobject> + + <para>Come con il comando &man.mail.1;, <application>mutt</application> + permette agli utenti di rispondere al solo mittente del messaggio come + pure a tutti i suoi destinatari. Per rispondere solo al mittente + del messaggio, usa il tasto <keycap>r</keycap>. Per inviare una + risposta di gruppo, che invierà la risposta sia al mittente + originario sia a tutti i destinatari del messaggio, usa il tasto + <keycap>g</keycap>.</para> + + <note> + <para><application>mutt</application> si serve del comando &man.vi.1; + come editor per la creazione o risposta dei messaggi di posta + elettronica. Il tipo di editor può essere personalizzato + dall'utente creando o editando il proprio file di configurazione + <filename>.muttrc</filename> nella propria directory home e settando + in modo opportuno la variabile <literal>editor</literal> o + impostando la variabile di ambiente <envar>EDITOR</envar>. + Guarda <ulink url="http://www.mutt.org/"></ulink> per + ulteriori informazioni sulla configurazione di + <application>mutt</application>.</para> + </note> + + <para>Per comporre un nuovo messaggio, premi il tasto <keycap>m</keycap>. + Dopo aver digitato un valido soggetto, <application>mutt</application> + avvierà &man.vi.1; con il quale comporre il corpo del messaggio. + Fatto ciò, salvando e uscendo da <command>vi</command>, + <application>mutt</application> visualizzarà una schermata + riassuntiva del messaggio che sta per essere consegnato. Per inviare il + messaggio, premi il tasto <keycap>y</keycap>. Segue un esempio di una + schermata riassuntiva di un messaggio:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/mutt3" format="PNG"/> + </imageobject> + </mediaobject> + + <para><application>mutt</application> contiene un ottimo help in linea, + che può essere accessibile nella maggior parte dei menù + digitando il tasto <keycap>?</keycap>. Inoltre, in alcuni casi, nella + parte superiore delle finestra vengono elencati i tasti funzioni + principali.</para> + </sect2> + + <sect2 id="pine-command"> + <title>pine</title> + + <para><application>pine</application> è rivolto agli utenti novizi, + tuttavia include alcune caratteristiche avanzate.</para> + + <warning> + <para>Il software <application>pine</application> ha avuto svariate + vulnerabilità remote scoperte in passato, che permettevano ad + attaccanti remoti di eseguire del codice arbitrario come se fossero + degli utenti locali del sistema, tramite l'invio di un messaggio di + posta preparato ad doc. Tutti questi <emphasis>noti</emphasis> + problemi sono stati rattoppati, ma il codice di + <application>pine</application> è stato scritto in un modo + insicuro e il Servizio di Sicurezza di &os; crede che probabilmente + esistono altre vulnerabilità non ancora scoperte o divulgate. + Installa <application>pine</application> a tuo rischio e + pericolo.</para> + </warning> + + <para>L'attuale versione di <application>pine</application> può + essere installata usando il port <filename + role="package">mail/pine4</filename>. Una volta che il port è + stato installato, <application>pine</application> può essere + avviato con il comando seguente:</para> + + <screen>&prompt.user; <userinput>pine</userinput></screen> + + <para>La prima volta che <application>pine</application> viene avviato + viene visualizza una pagina di presentazione con una breve introduzione, + e un sollecito del team di sviluppo di <application>pine</application> + ad inviare un messaggio anonimo che permette di constatare quanti sono + gli utenti che usano la loro applicazione. Per inviare questo messaggio + anonimo, premi <keycap>Invio</keycap>, oppure premi il tasto + <keycap>E</keycap> per uscire dalla presentazione senza inviare il + messaggio anonimo. Ecco un esempio della pagina di + presentazione:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/pine1" format="PNG"/> + </imageobject> + </mediaobject> + + <para>All'utente viene quindi presentato il menù principale, che + può essere facilmente esplorato con i tasti cursore. Questo + menù principale fornisce le scorciatoie per comporre nuovi + messaggi di posta, per esplorare le directory di posta e perfino per + amministrare l'agenda degli indirizzi. Sotto al menù + principale, sono mostrati i tasti funzione utili per realizzare azioni + specifiche, attinenti all'attuale contesto d'uso.</para> + + <para>La directory di default aperta da <application>pine</application> + è <filename class="directory">inbox</filename>. Per visualizzare + l'indice dei messaggi, premi il tasto <keycap>I</keycap>, o seleziona + l'opzione <guimenuitem>MESSAGE INDEX</guimenuitem> come da + esempio:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/pine2" format="PNG"/> + </imageobject> + </mediaobject> + + <para>L'indice dei messaggi mostra i messaggi nella directory corrente, + e può essere esplorato con i tasti cursore. I messaggi + selezionati possono essere letti premendo il tasto + <keycap>Invio</keycap>.</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/pine3" format="PNG"/> + </imageobject> + </mediaobject> + + <para>Nello screenshot seguente, viene visualizzato un semplice messaggio + in <application>pine</application>. I tasti funzione sono visualizzati + come riferimento nella parte superiore della finestra. Un esempio di + uno di questi tasti funzioni è il tasto <keycap>r</keycap>, + che dice al <acronym>MUA</acronym> di rispondere al messaggio + attualmente visualizzato.</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/pine4" format="PNG"/> + </imageobject> + </mediaobject> + + <para>In <application>pine</application> la risposta ad un messaggio viene + realizzata con l'editor <application>pico</application>, che è + installato di default con <application>pine</application>. L'utility + <application>pico</application> permette una semplice esplorazione del + messaggio ed è più permissivo con i nuovi utenti rispetto + a &man.vi.1; o &man.mail.1;. Una volta completata la risposta, il + messaggio può essere inviato con <keycombo + action="simul"><keycap>Ctrl</keycap><keycap>X</keycap></keycombo>. + L'applicazione <application>pine</application> chiederà una + conferma.</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/pine5" format="PNG"/> + </imageobject> + </mediaobject> + + <para><application>pine</application> può essere personalizzato + usando l'opzione <guimenuitem>SETUP</guimenuitem> del menù + principale. Consulta <ulink + url="http://www.washington.edu/pine/"></ulink> per maggiori + informazioni.</para> + </sect2> + </sect1> + + <sect1 id="mail-fetchmail"> + <sect1info> + <authorgroup> + <author> + <firstname>Marc</firstname> + + <surname>Silver</surname> + + <contrib>Contributo di </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Usare fetchmail</title> + + <indexterm><primary>fetchmail</primary></indexterm> + + <para><application>fetchmail</application> è un client + <acronym>IMAP</acronym> e <acronym>POP</acronym> super attrezzato che + da la possibilità agli utenti di scaricare automaticamente la posta + da server remoti <acronym>IMAP</acronym> e <acronym>POP</acronym> e di + salvarla nelle proprie caselle di posta locali; in questo modo la posta + è più accessibile. <application>fetchmail</application> + può essere installato usando il port <filename + role="package">mail/fetchmail</filename>, e offre diverse + caratteristiche, alcune delle quali sono:</para> + + <itemizedlist> + <listitem> + <para>Supporto dei protocolli <acronym>POP3</acronym>, + <acronym>APOP</acronym>, <acronym>KPOP</acronym>, + <acronym>IMAP</acronym>, <acronym>ETRN</acronym> e + <acronym>ODMR</acronym>.</para> + </listitem> + + <listitem> + <para>Capacità di inoltrare la posta usando + <acronym>SMTP</acronym>, permettendo di filtrare, inoltrare, e usare + la funzionalità alias come di consueto.</para> + </listitem> + + <listitem> + <para>Può essere eseguito in modalità demone per + verificare in modo periodico la presenza di nuovi messaggi.</para> + </listitem> + + <listitem> + <para>Può recuperare più caselle di posta e inoltrare + i relativi messaggi a diversi utenti locali, a seconda della sua + configurazione.</para> + </listitem> + </itemizedlist> + + <para>Benchè la spiegazione di tutte le caratteristiche di + <application>fetchmail</application> vada oltre lo scopo di questo + documento, verranno presentate alcune funzionalità di base. + <application>fetchmail</application> richiede un file di configurazione + <filename>.fetchmailrc</filename>, al fine di poter essere avviato in modo + corretto. Questo file include informazioni sui server come pure le + credenziali per il login. Data la natura sensibile del contenuto di + questo file, è consigliabile renderlo accessibile in sola lettura + dal proprietario, usando il seguente comando:</para> + + <screen>&prompt.user; <userinput>chmod 600 .fetchmailrc</userinput></screen> + + <para>La seguente configurazione di <filename>.fetchmailrc</filename> serve + come esempio per scaricare una singola casella di posta usando + <acronym>POP</acronym>. Essa indica a + <application>fetchmail</application> di connettersi a <hostid + role="fqdn">example.com</hostid> usando come nome utente + <username>joesoap</username> e come password <literal>XXX</literal>. + Questo esempio assume che l'utente <username>joesoap</username> è + anche un utente del sistema locale.</para> + + <programlisting>poll example.com protocol pop3 username "joesoap" password "XXX"</programlisting> + + <para>Il prossimo esempio si connette a più server + <acronym>POP</acronym> e <acronym>IMAP</acronym> e redirige i vari + messaggi a diversi nomi utenti locali quando necessario:</para> + + <programlisting>poll example.com proto pop3: +user "joesoap", with password "XXX", is "jsoap" here; +user "andrea", with password "XXXX"; +poll example2.net proto imap: +user "john", with password "XXXXX", is "myth" here;</programlisting> + + <para>L'utility <application>fetchmail</application> può essere + eseguita in modalità demone con l'opzione <option>-d</option>, + seguita da un intervallo (in secondi) in base al quale + <application>fetchmail</application> sonderà i server elencati nel + file <filename>.fetchmailrc</filename>. Il seguente esempio indica a + <application>fetchmail</application> di sondare i server ogni 600 + secondi:</para> + + <screen>&prompt.user; <userinput>fetchmail -d 600</userinput></screen> + + <para>Maggiori informazioni su <application>fetchmail</application> possono + essere trovate all'indirizzo <ulink + url="http://fetchmail.berlios.de/"></ulink>.</para> + </sect1> + + <sect1 id="mail-procmail"> + <sect1info> + <authorgroup> + <author> + <firstname>Marc</firstname> + + <surname>Silver</surname> + + <contrib>Contributo di </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Usare procmail</title> + + <indexterm><primary>procmail</primary></indexterm> + + <para>L'utility <application>procmail</application> è un'applicazione + molto potente usata per filtrare la posta in ingresso. Permette agli + utenti di definire delle <quote>regole</quote> che sono confrontate con la + posta in ingresso per realizzare funzioni specifiche o per inoltrare la + posta ad una casella di posta alternativa e/o ad altri indirizzi di posta. + <application>procmail</application> può essere installato usando + il port <filename role="package">mail/procmail</filename>. Una volta + installato, può essere integrato direttamente nella maggior parte + degli <acronym>MTA</acronym>; consulta la documentazione del tuo + <acronym>MTA</acronym> per maggiori informazioni. Altrimenti, + <application>procmail</application> può essere integrato + aggiungendo la seguente linea nel file <filename>.forward</filename> nella + home directory dell'utente, potendo così utilizzare le + funzionalità di <application>procmail</application>:</para> + + <programlisting>"|exec /usr/local/bin/procmail || exit 75"</programlisting> + + <para>La seguente sezione mostra alcune regole base di + <application>procmail</application>, così come una breve + descrizione di ciò che fanno. Queste ed eventualmente altre + regole, devono essere inserite nel file <filename>.procmailrc</filename>, + posto nella home directory dell'utente.</para> + + <para>La maggior parte di queste regole possono essere trovate anche nella + pagina man di &man.procmailex.5;.</para> + + <para>Per inoltrare la posta inviata da <email>user@example.com</email> + all'indirizzo di posta <email + role="nolink">goodmail@example2.com</email>:</para> + + <programlisting>:0 +* ^From.*user@example.com +! goodmail@example2.com</programlisting> + + <para>Per inoltrare tutti i messaggi di posta con dimensioni inferiori a + 1000 bytes verso l'indirizzo di posta esterno + <email role="nolink">goodmail@example2.com</email>:</para> + + <programlisting>:0 +* < 1000 +! goodmail@example2.com</programlisting> + + <para>Per inoltrare tutta la posta inviata a + <email>alternate@example.com</email> in una casella di posta chiamata + <filename>alternate</filename>:</para> + + <programlisting>:0 +* ^TOalternate@example.com +alternate</programlisting> + + <para>Per inviare tutti messaggi di posta con soggetto <quote>Spam</quote> + in <filename>/dev/null</filename>:</para> + + <programlisting>:0 +^Subject:.*Spam +/dev/null</programlisting> + + <para>Ecco una ricetta utile che analizza i messaggi di posta in ingresso + delle liste di <hostid role="domainname">&os;.org</hostid> e li posiziona + in base alla lista in una opportuna casella di posta:</para> + + <programlisting>:0 +* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG +{ + LISTNAME=${MATCH} + :0 + * LISTNAME??^\/[^@]+ + FreeBSD-${MATCH} +}</programlisting> + </sect1> +</chapter> |