Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Mail2News Mini-Howto</TITLE>


</HEAD>
<BODY>
<H1>Mail2News Mini-Howto</H1>

<H2>Rick Dean
<CODE>&lt;howto@fdd.com&gt;</CODE></H2>v2.1, 1 settembre 1999
<P><HR>
<EM>Questo documento descrive come rifornire un news server con una mailing-list.
Traduttore: Maurizio Mollicone, &lt;mm551@jb.math.unifi.it>, 23 Marzo 2000</EM>
<HR>
<H2><A NAME="s1">1. Diritti e distribuzione</A></H2>

<H2>1.1 Che cos'&egrave; questo documento</H2>

<P>Questo documento descrive come rifornire un news server con una mailing list 
utilizzando un sistema Linux. &Egrave; un mini-HOWTO, pi&ugrave;
specificatamente il Mail2News mini-HOWTO.
<P>
<H2>1.2 Copyright (in inglese)</H2>

<P>Copyright (c) 1999, Rick Dean. <BR>
Copyright (c) 1996, Robert Hart. 
<P>
<P>The authors retain their copyright of this document.  You are hereby
granted permission to redistribute this document in whole or in part
as long as it includes this copyright notice.  Commercial
redistribution is allowed and encouraged.  All translations or
derivative works of this document must be covered under this copyright
notice, and without additional restrictions on distribution.  This
arrangement is also known as a copyleft.
<P>This copyright notice, itself, is hereby placed in the public domain.
You may copy it without atribution.
<P>
<H2>1.3 Dove posso trovare questo HOWTO?</H2>

<P>La versione pi&ugrave; recente di questo documento &egrave; 
disponibile all'indirizzo 
<A HREF="http://fdd.com/howto/">http://fdd.com/howto/</A>.
<P>
<P>Molte distribuzioni includono questo HOWTO nella 
directory <CODE>/usr/doc/HOWTO</CODE>.
<P>
<P>Questo mini-HOWTO, come la maggior parte dei mini-HOWTO di Linux, &egrave; 
stato scritto inizialmente in SGML. Questo permette al testo di essere
automaticamente tradotto in molti formati, tra cui testo, HTML, PostScript, ecc.
Questi formati sono disponibili da qualche parte.
<P>
<P> 
Altre informazioni sulla documentazione di Linux sono disponibili presso
<A HREF="http://www.redhat.com/mirrors/LDP/">Linux Documentation Project</A>,
e in molti altri posti
<P>
<H2>1.4 Storia del documento </H2>

<P>
<UL>
<LI>La versione 1.0 &egrave; stata scritta da Robert Hart <CODE>&lt;hartr@redhat.com&gt;</CODE> nel 1996         </LI>
<LI>Le versioni 2.x sono state modificate da Rick Dean <CODE>&lt;howto@fdd.com&gt;</CODE>
a partire dal Luglio 1999.</LI>
</UL>
<P>
<H2><A NAME="s2">2. Introduzione</A></H2>

<H2>2.1 Come, perch&eacute;, pi&ugrave; alcune definizioni</H2>

<P>Questo documento descrive come rifornire (feed) un news server con una mailing-list 
utilizzando una macchina Linux. &Egrave; un mini-HOWTO, specificatamente il Mail2News
mini-HOWTO.
<P>
<P>
<P>
<P>Una mailing list (conosciuta anche col nome di remailer), &egrave; un indirizzo
dove le e-mail vengono rispedite ad una lista di indirizzi.
&Egrave; molto utile per la collaborazione di gruppi geograficamente dispersi.
Molte compagnie (ad esempio i gruppi di lavoro della IETF) utilizzano le mailing list.
<P>
<P>Sfortunatamente, se si &egrave; iscritti a pi&ugrave; mailing list,
si ha la casella di posta regolarmente innondata di messaggi.
Inoltre, alcune compagnie (come 3Com) specificano quale 
applicazione di posta devono utilizzare i loro impiegati (ad esempio Lotus Notes).
Se le e-mail vengono reindirizzate ad un gruppo di discussione, le persone sono rese libere
di scegliere il lettore di news che preferiscono, utilizzando delle funzioni
progettate proprio per quello scopo (cio&egrave; derivare un segnale dal rumore).
<P>
<P>I server di news sono apparsi su Internet molto tempo fa,
diversi anni prima del World Wide Web.
I server di news e i lettori di news hanno carateristiche come...
<UL>
<LI>threading - le risposte sono raggruppate per argomento con le e-mail a cui si riferiscono</LI>
<LI>indicazione della lettura - il computer tiene traccia di cosa si &egrave; letto, anche attraverso i gruppi di discussione</LI>
<LI>Si possono marcare come letti i messaggi a seconda dell'argomento.</LI>
<LI>archiviazione</LI>
<LI>segregazione per newsgroup (i.e. mailing list)</LI>
<LI>un metodo di sottoscrizione/cancellazione veloce e standardizzato</LI>
<LI>e molto altro...</LI>
</UL>
<P>
<P>Un grande obiettivo dei server di news &egrave; la condivisione di notizie tra server.
Il pi&ugrave; grande di questi gruppi venne conosciuto come USENET.
Questo mini HOWTO non &egrave; rivolto a questo. Si possono condividere 
i gruppi di discussione creati attraverso questo documento da soli, ma si vive bene anche senza.
Come per i web server, l'onnipresente connettivit&agrave; ad Internet, ha reso accettabile 
i news server centralizzati.
Inoltre recenti prove hanno mostrato che un macchina Linux con un solo
processore pu&ograve; gestire pi&ugrave; di 1300 richieste HTTP per secondo,
quindi la scalabilit&agrave; &egrave; un obiettivo secondario.
<P>
<P>Sebbene non ci sia bisogno di avere una mailing list per utilizzare 
questo documento, &egrave; una buona idea avere il news server.
<P>
<H2>2.2 Ambiente presupposto</H2>

<P>Questo documento presume che si stia utilizzando Linux, ma vanno
bene anche altri Unix. Attualmente &egrave; descritto solo sendmail
come agente di posta, ma non appena <CODE>qmail</CODE> diverr&agrave; popolare
(in parte per la facilit&agrave; di configurazione) si spera che qualcuno 
scriva delle note di configurazione anche per lui. :-)
<P>
<P>Al momento della scrittura questo mini-HOWTO &egrave; stato testato
solo su un distribuzione Redhat 6.0.
Da buoni informatici, non si dovrebbe credere che qualcosa funzioni
finch&eacute; non sia stato specificatamente testato.
Qualsiasi contributo o annotazione riguardo altre distribuzioni &egrave;
benvenuto.
<P>
<P>Per la gran parte di questo documento si avr&agrave; bisogno dell'accesso di root,
a meno che non sia specificato il contrario.
<P>
<H2>2.3 Metodologia</H2>

<P>Questo mini-HOWTO &egrave; presentato al contrario, dato che &egrave;
il modo pi&ugrave; semplice di costruire e debuggare il tutto.
Al contrario significa che si inizier&agrave; con il lettore di news
e si risalir&agrave; fino al gestore della mailing list, cio&egrave;
la direzione opposta del normale flusso di dati. Questo sistema utilizza
alcune parti (come sendmail e innd) che sono dei piccoli HOWTO.
<P>
<H2>2.4 Argomenti esclusi</H2>

<P>Questo mini-HOWTO non riguarda...
<P>
<UL>
<LI>la configurazione di una mailing list</LI>
<LI>lo scambio di informazioni tra server di news</LI>
<LI>una lista completa di argomenti non pertinenti.</LI>
</UL>
<P>
<P>
<P>Per favore non scrivetemi e-mail su questi argomenti (o SPAM).
<P>
<H2><A NAME="s3">3. Il lettore di news</A></H2>

<H2>3.1 Netscape</H2>

<P>Netscape contiene un lettore di news integrato. Il modo pi&ugrave;
semplice di sottoscrivere un gruppo di discussione &egrave; di scrivere o cliccare 
un link simile a
<BLOCKQUOTE><CODE>
<PRE>
news://news.sfour.com/ietf.confctrl
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>
<P>Una volta iscritti, si deve solo andare al centro messaggi.
Questo si fa cliccando sulla icona a fumetto nell'angolo destro della finestra.
<P>
<H2>3.2 Free Agent</H2>

<P>Free Agent &egrave; un meraviglioso lettore di news di Forte per Windows.
Si guardi:
http://www.forteinc.com/agent/freagent.htm
<P>
<P>
<H2>3.3 trn e altri</H2>

<P>I vecchi lettori di news come <CODE>trn</CODE> e <CODE>tin</CODE> sono una 
buona soluzione. Ci si assicuri di impostare prima la variabile d'ambiente NNTPSERVER.
Per esempio...
<BLOCKQUOTE><CODE>
<PRE>
export NNTPSERVER=news.sfour.com
trn
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="s4">4. Il server di news</A></H2>

<H2>4.1 Installazione del server di news</H2>

<P>Si deve installare un server di news. Io utilizzo <CODE>inn</CODE>,
ma ne sono disponibili anche altri.
<P>
<P>Preferiblmente si scelga l'opzione "News Server" durante l'installazione 
iniziale, ma se la distribuzione utilizza RPM (RedHat package manager), allora basta 
utilizzare un comando come
<BLOCKQUOTE><CODE>
<PRE>
rpm -i inn-2.2.9.i386.rpm
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>4.2 Far partire il news server</H2>

<P>Per far partire o fermare l'esecuzione del news server, si utilizza il comando
<BLOCKQUOTE><CODE>
<PRE>
/etc/rc.d/init.d/innd start
</PRE>
</CODE></BLOCKQUOTE>

o
<BLOCKQUOTE><CODE>
<PRE>
/etc/rc.d/init.d/innd stop
</PRE>
</CODE></BLOCKQUOTE>

o
<BLOCKQUOTE><CODE>
<PRE>
/etc/rc.d/init.d/innd restart
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>Per far partire il news server all'avvio del sistema si pu&ograve;
aggiungere un comando, come quelli visti, alla fine di <CODE>/etc/rc.d/rc.local</CODE>,
ma non &egrave; la soluzione migliore.
Molte distribuzioni hanno della applicazioni grafiche che permettono
di scegliere quali demoni attivare. Si provi a scrivere:
<P>
<BLOCKQUOTE><CODE>
<PRE>
setup
</PRE>
</CODE></BLOCKQUOTE>

or
<BLOCKQUOTE><CODE>
<PRE>
chkconfig --add innd
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>4.3 Creazione del newsgroup</H2>

<P><CODE>innd</CODE> richiede poco riguardo a permessi e propriet&agrave;
Per la gran parte della configurazione baster&agrave; essere utente <CODE>news</CODE>.
Per diventare questo utente quando si &egrave; root:
<P>
<BLOCKQUOTE><CODE>
<PRE>
        su - news
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P> 
Utilizzando <CODE>ctlinnd</CODE>, si crea il gruppo di discussione sul server. 
Da ricordare che il newsgroup sar&agrave; <B>locale</B>, 
quindi si deve crearlo
con un nome distintivo, in modo da poterlo filtrare dalla distribuzione delle 
news se si fa questo errore.
Con orgoglio ho chiamato il mio newsgroup <CODE>ietf.confctrl</CODE>.
Le parole da sinistra a destra vanno da meno a pi&ugrave; specifico.
<P>
<P>Inoltre si deve dire a <CODE>innd</CODE> che il gruppo &egrave; moderato
(utilizzando ctlinnd). Questo si fa specificando <CODE>m</CODE> al comando
<CODE>newgroup</CODE>. Per esempio:
<P>
<BLOCKQUOTE><CODE>
<PRE>
        ctlinnd newgroup ietf.confctrl m confctrl@isi.edu
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P> 
Il gruppo di discussione deve essere creato come <B>moderato</B>,
in modo da poter usufruire delle possibilit&agrave; di innd.
Qualsiasi messaggio inviato ad un gruppo moderato <B>non &egrave;</B>
immediatamente consegnato al gruppo, ma viene prima inviato al moderatore.
Nell'esempio confctrl@isi.edu &egrave; l'indirizzo a cui &egrave; rimandato il 
remailer.
<P>
<P>Se si stanno condividendo notizie con altri server, ci si deve ricordare
di editare le proprie configurazioni in modo che il gruppo non sia 
distribuito, a meno che non si voglia specificatamente fare questo.
<P>
<P>
<H2>4.4 Ampliare l'accesso</H2>

<P>Di default, il news server non permette ad ogni client di leggere le notizie,
quindi si deve disabilitare l'autenticazione dell'utente di innd. Questo va fatto
nel file /etc/news/nnrp.access.
Si legga la pagina man di nnrp.access per apprendere la sintassi di questo file.
Io ho cambiato la prima riga non di commento in:
<BLOCKQUOTE><CODE>
<PRE>
*:Read Post:::*
</PRE>
</CODE></BLOCKQUOTE>
<P>Se si vuole un nome utente e una password, allora si devono riempire il terzo e
il quarto campo. Per maggiori informazioni sulla sintassi si guardi il manuale...
<BLOCKQUOTE><CODE>
<PRE>
man nnrp.access
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>4.5 Cambiare i permessi di /usr/bin/rnews</H2>

<P>Si devono cambiare anche i permessi di /usr/bin/rnews. Non &egrave;
leggibile e eseguibile da tutti, ma <CODE>sendmail</CODE> esegue script come
<CODE>nobody</CODE>.
<P>
<BLOCKQUOTE><CODE>
<PRE>
chmod a+rx /usr/bin/rnews
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>4.6 Testare l'invio dell'articolo</H2>

<P>Se si copia il seguente articolo in un file di nome <CODE>rick.article</CODE>...
<P>
<HR>
<PRE>
Path: rick
From: rick@fdd.com
Message-ID: &lt;199907120548.AAA05475@fdd.com>
Subject: test
Date: Mon, 12 Jul 1999 00:48:49 -0500 (CDT)
Newsgroups: ietf.confctrl
Approved: ietf-confctrl@kepler.hedland.edu.au
NNTP-Posting-Host: localhost
Organisation: (mail2news gateway)


test
</PRE>
<HR>
<P>
<P>Ora si dovrebbe essere in grado di inviare un file con...
<P>
<BLOCKQUOTE><CODE>
<PRE>
/usr/bin/rnews -r localhost &lt;rick.article
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>4.7 Funziona?</H2>

<P>Non c'&egrave; bisogno di aspettare che l'articolo sia mostrato come non letto, basta guardare 
nelle sottocartelle <CODE>/var/spool/news/articles/</CODE> e vedere che file che sono stati creati.
<P>
<P>
<H2>4.8 Aumentare il tempo di vita</H2>

<P>Si pu&ograve; volere incrementare il tempo di vita degli articoli del 
gruppo di discussione. Nel mio caso ho voluto che non decadessero mai, cos&iacute; 
ho aggiunto la seguente linea...
<P>
<BLOCKQUOTE><CODE>
<PRE>
ietf*:A:never:never:never
</PRE>
</CODE></BLOCKQUOTE>

...al file <CODE>/etc/news/expire.ctl</CODE>
<P>
<P>Per imparare di pi&ugrave; sulla sintassi di questo file:
<BLOCKQUOTE><CODE>
<PRE>
man expire.ctl
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="s5">5. Lo script di invio e Perl</A></H2>

<H2>5.1 Che cos'&egrave; Perl?</H2>

<P>Per sta per Practical Extension and Report Language. &Egrave; molto 
popolare per piccoli script che manipolino testi, che &egrave; esattamente quello 
che si vuole.
<P>
<P>Perl, di default, &egrave; installato in molti sistemi Unix.
<P>
<H2>5.2 Locazione di perl</H2>

<P>Se perl &egrave; installato in una cartella inusuale (non in <CODE>/usr/bin/</CODE>),
allora si deve modificare la prima linea dello script.
Se questa righa &egrave; sbagliata sul mio sistema con kernel 2.2 ottengo:
"bash: /usr/local/bin/mail2news.pl: No such file or directory"
Possiamo tranquillamente cambiarla in: "bash: /usr/local/bin/mail2news.pl:
interprete non trovato. Controlla la prima linea dello script"?
<P>
<H2>5.3 Lo script mail2news.pl</H2>

<P>
<HR>
<PRE>
#!/usr/bin/perl

($program = $0) =~ s%.*/%%;

#( $version  ) = $] =~ /(\d+\.\d+).*\nPatch level/;
#die "$program: requires at least version 3 of perl\n"
#        if $version &lt; 3;

# $news_poster_program = "/usr/bin/inews";
# $news_poster_options = "-h -o \"mail2news gateway\"";
$news_poster_program = "/usr/bin/rnews";
$news_poster_options = "-r localhost";
$postinghost = "localhost";

if ($#ARGV &lt; 0) {
    # $newsgroup = "test";
    # we'll expect the newsgroup line in the body
} elsif ($#ARGV == 0) {
    $newsgroup = $ARGV[0];
} else {
    die "usage: $program [newsgroup]\n";
}

# in case inews dumps core or something crazy
$SIG{'PIPE'} = "plumber";
sub plumber { die "$program: \"$news_poster_program\" died prematurely!\n"; }

open (INEWS, "| $news_poster_program $news_poster_options") ||
    die "$program: can't run $news_poster_program\n";

# header munging loop
while (&lt;STDIN>) {
   last if /^$/;

   # transform real from: line back to icky style
   s/^From:\s+(.*) &lt;(.*)>/From: $2 ($1)/;

   s/Message-Id/Message-ID/;
 
   # transform from_ line to path header; also works locally
   s/^From\s+(\S+)@(\S+).*/Path: $2!$1/
     || s/^From\s+(\S+)[^@]*$/Path: $1\n/;

   print INEWS
#       if /^(Date|From|Subject|Path|Newsgroups|Organization|Message-ID):/i;
   if /^(Date|From|Subject|Path|Newsgroups|Message-ID):/i;
   $saw_subject |= ( $+ eq 'Subject' );

   $saw_msgid |= ( $+ eq 'Message-ID' );

#   $saw_newsgroup |= ( $+ eq 'Newsgroups' );
}

warn "$program: didn't expect newsgroup in both headers and ARGV\n"
    if $newsgroup &amp;&amp; $saw_newsgroup;
 
die "$program: didn't get newsgroup from either headers or ARGV\n"
    unless $newsgroup || $saw_newsgroup;
     
$approved = $newsgroup;
$approved =~ s/\./'-'/eg;

($sec,$min,$hour,$mday,$mon,$year)=localtime(time);
$madeupid = "\&lt;$year$mon$mday.$hour$min$sec.$$\@kepler.hedland.edu.au\>";

printf INEWS "Newsgroups: %s\n", $newsgroup if $newsgroup;
printf INEWS "Approved: %s\@kepler.hedland.edu.au\n", $approved;
print  INEWS "Subject: Untitled\n" unless $saw_subject;
printf INEWS "Message-ID: %s\n", $madeupid unless $saw_msgid;
printf INEWS "NNTP-Posting-Host: %s\n", $postinghost;
print  INEWS "Organisation: (mail2news gateway)\n";
print  INEWS "\n";
 
print INEWS while &lt;STDIN>;   # gobble rest of message
    
close INEWS;
exit $?;
</PRE>
<HR>
<P>
<P>Io ho salvato lo script in /usr/local/bin (e utilizzeremo questo 
percorso per tutto l'HOWTO).
<P>
<P>Ci si assicuri di rendere lo script eseguibile per tutti, ma
senza permesso di scrittura per il gruppo e gli altri.
<P>
<BLOCKQUOTE><CODE>
<PRE>
chmod a+x /usr/local/bin/mail2news.pl
chmod go-w /usr/local/bin/mail2news.pl
</PRE>
</CODE></BLOCKQUOTE>

o
<BLOCKQUOTE><CODE>
<PRE>
chmod 555 /usr/local/bin/mail2news.pl
</PRE>
</CODE></BLOCKQUOTE>

per brevit&agrave;.
<P>
<H2>5.4 Come si fa a sapere se lo script &egrave; in esecuzione?</H2>

<P>Ho testato questo script cambiando il programma per inviare news da /usr/bin/rnews
a /bin/cat. Quindi ho salvato una mail mandata a me stesso in un file.
Infine ho eseguito mail2news.pl sulla mail salvata e catturato l'output in un file.
<P>
<BLOCKQUOTE><CODE>
<PRE>
/usr/local/bin/mail2news.pl ietf.confctrl &lt;/tmp/savedMailFile >/tmp/article
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>5.5 Cosa c'entra l'Australia?</H2>

<P>S&iacute; l'output dello script deve contener l'indirizzo di un australiano.
Il mio consiglio &egrave; che l'indirizzo sia un indirizzo garantito nella propria
configurazione (sebbene non possa trovarlo nella mia) per approvare l'invio moderato.
<P>
<H2>5.6 Cosa significa $PATH?</H2>

<P>Se lo script mail2news.pl non &egrave; nel percorso
si ottiene l'errore <CODE>bash: mail2news.pl: command not found</CODE>.
Si deve aggiungere quindi questa direcory al percorso:
<P>
<BLOCKQUOTE><CODE>
<PRE>
PATH=$PATH:/usr/local/bin
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>(che funziona solo per la sessione corrente)
o dare un percorso assoluto quando si esegue lo script: 
<P>
<BLOCKQUOTE><CODE>
<PRE>
/usr/local/bin/mail2news.pl
</PRE>
</CODE></BLOCKQUOTE>
<P>Per veder l'attuale valore della variabile PATH:
<P>
<BLOCKQUOTE><CODE>
<PRE>
echo $PATH
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="s6">6. Il demone di posta locale</A></H2>

<H2>6.1 Introduzione</H2>

<P>Si deve prima creare un indirizzo di posta locale a cui far
spedire la mailing-list. Questo indirizzo sar&agrave; configurato per eseguire 
un programma (spedire ad un gruppo di discussione) tutte le volte che arriva un mail.
Sfortunatamente (per noi), questa opzione non &egrave; abilitata usualmente
per ragioni di sicurezza. 
<P>
<P>
<P>
<P>Questo HOWTO descrive solo come configurare sendmail.
<CODE>qmail</CODE> &egrave; un'altra scelta eccellente, ma non &egrave; ancora
trattato.
<P>
<P>
<H2>6.2 Creazione di un alias di posta</H2>

<P>Invece di creare un nuovo acconto per un utente, si creer&agrave; solo
un alias. Per sendmail questi sono contenuti in <CODE>/etc/aliases</CODE>.
La sintassi &egrave; definita nella pagina man...
<P>
<BLOCKQUOTE><CODE>
<PRE>
man aliases
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>
<P>
<P>Nell'esempio, il nome utente dell'indirizzo di mail
&egrave; <CODE>confctrl</CODE> che spedisce al gruppo di discussione locale
<CODE>ietf.confctrl</CODE>, cos&iacute; aggiungiamo una riga...
<P>
<BLOCKQUOTE><CODE>
<PRE>
confctrl:   "| /usr/local/bin/mail2news.pl ietf.confctrl "
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>
<P>
<P>Il doppio apice &egrave; richiesto.
Non ci pu&ograve; essere uno spazio tra la prima coppia di apici e il carattere | (pipe),
o sendmail si lamenter&agrave;: "User unknown".
<P>
<P>
<P>
<P>Quandunque si modifichi il file <CODE>/etc/aliases</CODE>, si dovr&agrave;
comunicarlo a sendmail.
<P>
<BLOCKQUOTE><CODE>
<PRE>
sendmail -bi
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>6.3 Funziona?</H2>

<P>Dopo aver mandato una e-mail, si controlli il file /var/log/maillog per 
controllare se ha funzionato. Il log pu&ograve; contenere un utile
messaggio di errore. Ho trovato conveniente aprire un'altro terminale per 
seguire il log con
<P>
<BLOCKQUOTE><CODE>
<PRE>
tail -f /var/log/maillog
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>
<H2>6.4 Abilitare il "pipe al programma"</H2>

<P>Il "pipe al programma" &egrave; il CGI della posta elettronica.
Quando arriva una mail, invece di appenderla ad un file, sendmail esegue uno script
o un programma e consegna la mail allo standard input.
<P>
<P>
<P>Attualmente, con Redhat 6.0, sendmail &egrave; distribuito con
il "pipe al programma" abilitato, ma solo un numero limitato di programmi
&eacute; eseguibile. La sicurezza degli utenti non era un bisogno sulla mia
macchina, cos&iacute; otrovato pi&uacute; facile abilitare l'esecuzione di 
tutto.
D'altra parte non c'&egrave; una pagina di manuale per smrsh.
<P>
<P>
<P>Per rendere possibile il "pipe al programma" dobbiamo modificare <CODE>sendmail.cf</CODE>,
modificando <CODE>sendmail.mc</CODE>, per non utilizziare la shell ristretta.
Stranamente, scommentando l'opzione, non funziona, quindi ho dovuto 
cambiare la shell da <CODE>/usr/sbin/smrsh</CODE>
a <CODE>/bin/bash</CODE>.
<P>
<P>
<P>L'intestazione del file <CODE>/etc/senmail.mc</CODE> di Redhat 6 ha un errore.
La linea di comando giusta &egrave;
<P>
<BLOCKQUOTE><CODE>
<PRE>
m4 /etc/sendmail.mc >/etc/sendmail.cf
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>
<P>Si deve fare questo quando si cambia <CODE>sendmail.mc</CODE>. Fortunatamente
Redhat estender&agrave; la magnifica idea del Makefile in <CODE>/etc/mail</CODE>
in modo da dover solo scrivere make.
Si dovr&agrave; prima installare <CODE>sendmail-cf.</CODE>qualcosa<CODE>.rpm</CODE>
Ad esempio:
<P>
<BLOCKQUOTE><CODE>
<PRE>
rpm -i sendmail-cf-8.9.3-10.i386.rpm
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>
<P>Ogni volta che si modifica il file sendmail.cf, si deve far ripartire sendmail...
<P>
<BLOCKQUOTE><CODE>
<PRE>
/etc/rc.d/init.d/sendmail restart
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>
<P>
<H2>6.5 Documentazione</H2>

<P>La Redhat, di default, non installa la documentazione di sendmail.
&Egrave; distribuita in un pacchetto rpm separato con un nome come 
sendmail-doc-8.9.3-10.i386.rpm. Questo crea una cartella <CODE>/usr/doc/sendmail</CODE>
<BLOCKQUOTE><CODE>
<PRE>
rpm -i sendmail-doc-*
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>http://www.sendmail.org/&nbsp;ca/email/doc/op-sh-5.html
descrive la sintassi del sendmail.cf. Spero che non dobbiate utilizzarla.
<P>
<P>
<P>Questa &egrave; descrizione delle caratteristiche che si stanno modificando in sendmail.mc
http://www.sendmail.org/m4/features.html
<P>
<P>Sendmail ha un pagina di manuale...
<BLOCKQUOTE><CODE>
<PRE>
man sendmail
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>
<H2>6.6 Senza privilegi</H2>

<P>Se si hanno dei problemi e si crea un alias di un indirizzo di posta
con un script differente e pi&ugrave; semplice per testarlo,
si ricordi che sendmail esegue il programma come utente non privilegiato,
che probabilmente non avr&agrave; il diritto di scrivere ovunque, eccetto
che in cartelle come <CODE>/tmp</CODE>.
<P>
<P>
<H2><A NAME="s7">7. Il reindirizzatore della mailing list</A></H2>

<H2>7.1 Sottoscrizione</H2>

<P>Il metodo di sottoscrizione ad ognuna delle mailing list &egrave; differente,
sebbene implichi l'invio di un certo tipo di messaggio di posta.
Per favore, si stia attenti a non mandare l'indirizzo di risposta al gruppo. 
&Egrave; un metodo sicuro per annoiare i membri della lista.
Molte mailing list hanno indirizzi separati per le sottoscrizioni.
In confctrl, l'indirizzo di amministrazione &egrave; confctrl-request@isi.edu,
come spiegato da http://www.ietf.org/html.charters/mmusic-charter.html.
<P>
<P>
<P>
<P>Quando ci si &egrave; iscritti con successo, si dovrebbe vedere
un messaggio di benvenuto nel newsgroup.
<P>
<P>
<P>Alcune liste non permettono di iscriversi con un indirizzo 
diverso da quello con cui si sta inviando. In questo caso si dovr&agrave;
truccare l'indirizzo di ritorno di una e-mail.
<P>
<H2>7.2 Truccare la posta </H2>

<P>Questa &egrave; la cosa pi&ugrave; semplice da fare con un vecchio Netscape.
Accetta qualsiasi cosa come indirizzo di ritorno.
Fortunatamente, i browser moderni, richiedono che si scarichi posta con successo 
per un indirizzo, prima di permettere l'invio.
Quindi si deve tornare al buon vecchio metodo...telnet.
<P>
<P>
<H3>Cercare macchine MX</H3>

<P>Quando si richiede un pagina web, il browser effettua una richiesta al
DNS per convertire il nome del dominio in un indirizzo IP.
Questo equivale alla ricerca di un campo "A" (sono considerati anche i campi "CNAME").
Quando si invia un e-mail, si ricerca il campo "MX". Se non &egrave; trovato allora 
si utilizza il campo "CNAME", o "A".
Quindi per truccare un'e-mail si deve cercare il campo MX.
<P>
<BLOCKQUOTE><CODE>
<PRE>
dig mx isi.edu
</PRE>
</CODE></BLOCKQUOTE>

dar&agrave;...
<BLOCKQUOTE><CODE>
<PRE>
; &lt;&lt;>> DiG 8.2 &lt;&lt;>> mx isi.edu 
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 6
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 4
;; QUERY SECTION:
;;      isi.edu, type = MX, class = IN

;; ANSWER SECTION:
isi.edu.                1D IN MX        0 tnt.isi.edu.
isi.edu.                1D IN MX        10 venera.isi.edu.

;; AUTHORITY SECTION:
isi.edu.                1D IN NS        venera.isi.edu.
isi.edu.                1D IN NS        ns.isi.edu.
isi.edu.                1D IN NS        east.isi.edu.

;; ADDITIONAL SECTION:
tnt.isi.edu.            1D IN A         128.9.128.128
venera.isi.edu.         1D IN A         128.9.176.32
ns.isi.edu.             1D IN A         128.9.128.127
east.isi.edu.           1D IN A         38.245.76.2

;; Total query time: 448 msec
;; FROM: fdd.com to SERVER: default -- 127.0.0.1
;; WHEN: Sun Jul 25 15:49:32 1999
;; MSG SIZE  sent: 25  rcvd: 182
</PRE>
</CODE></BLOCKQUOTE>

quindi si vorr&agrave; usare tnt.isi.edu (se non si ha dig, anche
;; <CODE>nslookup</CODE> andr&agrave; bene).
<P>
<H3>SMTP</H3>

<P>La posta &egrave; consegnata utilizzando il protocollo SMTP (Simple Mail Transfert
Protocol). Come la maggior parte dei protocolli di Internet &egrave; basato su ASCII
per rendere lo sviluppo e la risoluzione dei problemi pi&ugrave; semplici.
Non spiegher&ograve; tutto, ma semplicemente dar&ograve; un esempio. Spero che sia abbastanza.
<P>
<P>
<P>
<P>Il protocollo &egrave; orientato alla linea. Ogni e-mail, come
specificato nel documento RFC822, &egrave; composta da intestazioni e da un corpo, che 
sono separati dalla prima linea vuota (senza caratteri o spazi).
Il protocollo SMTP specifica che l'e-mail &egrave; terminata da una linea contenente solo un punto.
<P>
<BLOCKQUOTE><CODE>
<PRE>

halyard$ telnet tnt.isi.edu 25
Trying 128.9.128.128...
Connected to tnt.isi.edu.
Escape character is '^]'.
220 tnt.isi.edu ESMTP Sendmail 8.8.7/8.8.6; Sun, 25 Jul 1999 14:01:25 -0700 (PDT)
helo isi.edu
250 tnt.isi.edu Hello rick@node-d8e9822 [216.233.8.34] (may be forged), pleased to meet you
mail from:&lt;confctrl@news.sfour.com>
250 &lt;confctrl@news.sfour.com>... Sender ok
rcpt to:&lt;confctrl-request@isi.edu>
250 &lt;confctrl-request@isi.edu>... Recipient ok
data
354 Enter mail, end with "." on a line by itself
From:&lt;confctrl@news.sfour.com>
Subject: help

help
.
250 OAA26778 Message accepted for delivery
quit
221 tnt.isi.edu closing connection
Connection closed by foreign host.
halyard$ 
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>7.3 Pazienza.</H2>

<P>La mailing list &egrave; l'ultima in parte perch&eacute; &egrave;
la pi&ugrave; lenta. Quando la posta viene girata ad altri indirizzi, sipu&ograve; 
aspettare un'ora prima di vedere la risposta.
</BODY>
</HTML>