Newsgroup: it.comp.lang.perl
Titolo: perl + news_server

Ciao,
Sono alle prese sempre con problemi di news e mail, ma se risolvo questo
problemi che vi pongo ho risolto il tutto.Rifacendomi a cose che ho
letto, trovato e modificato...ecco la mia storia
ho creato nel file /etc/aliases la seguente linea:
pippo:"| /disk0/
cld8.pl
"
la mia intenzione e' di fare in modo che se qualcuno scrive a
pippo@domain la mail viene fornita come input al programma che ho
creato.
il programma che ho scritto prende come input una banale mail crea un
file formattato da usare come input file per inews, lo stampa a schermo
e spedisce anche una mail.
La cosa che mi preme e' quello che creo per inews. (NATURALMENTE!!!!)
quando mando la mail ecco il risultato:
mailx -v pippo
Subject: 22
proviam anche questa
.
EOT
ue3000% pippo... aliased to "| /disk0/
cld8.pl
 "
To: pippo
Path: 
ra...@iigbna.iigb.na.cnr.it
From: claudia
Newsgroups: iigb.prova
Subject: 24
Date: Tue, 31 Mar 1998 19:03:55 +0200
Reply-To: ralloiigb
questa e una prova
"| /disk0/
cld8.pl
 "... Sent
NOTA BENE!!! dato che e' un programma di prova ho forzato una serie di
parametri per semplificare un po' il lavoro!!! (Si fa per dire)
Apparentemente non ci sono errori. Ma quello che accade e' che  manda la
mail  MA NON MANDA LA NEWS!!!
se faccio correre inews nel seguente modo:
inews -h -a claudia p.txt
dove il file p.txt l'ho creato incollando quello che mi e' uscito a
schermo dal mio programma funziona, cioe' crea la news!
Allora che cosa c'e' di sbagliato nel mio programma???? Non ho eccessiva
esperienza con il perl  per cui mi sono arenata, mi sono decisa a
chiedere a voi luminari di news server e di perl (LO SO CHE NE ESISTONO)
un aiuto.
Spero di essere stata chiara vi prego di darmi qualche consiglio,
perche' NON SO PIU' CHE FARE.
In atttesa di un AIUTOOOOOO!
 Claudia Rallo
-------------------------------
#!/usr/local/bin/perl
$ENV{'LD_LIBRARY_PATH'}='/usr/lib:/disk0/netscape/suitespot/bin/news/lib:/disk0/
netscape/suitespot/lib';
$recipient = '
ra...@iigbna.iigb.na.cnr.it
';
open(NEWS,"|/disk0/netscape/suitespot/bin/news/bin/inews -h -a claudia
");
open(MAIL,"|/usr/lib/sendmail $recipient ");
while (<STDIN>)
{
print MAIL;
if (/^To: /) {
   $To = $_;
}
if (/^From: /) {
$From = $_;
}
if (/^Subject: /) {
$Sub = $_;
}
if (/^Date: /) {
$Date = $_;
}
#if (/^Reply-To: /) {
#$Rep = $_;
#}
}
$Path = 'Path: 
ra...@iigbna.iigb.na.cnr.it
'."\n";
$NewsGroup =  "Newsgroups: iigb.prova\n";
$Rep = "Reply-To: ralloiigb\n";
$Body = "\nquesta e una prova\n";
print NEWS $To;
print NEWS $Path;
print NEWS $From;
print NEWS $NewsGroup;
print NEWS $Sub;
print NEWS $Date;
print NEWS $Rep;
print NEWS $Body;
print  $To;
print  $Path;
print  $From;
print  $NewsGroup;
print  $Sub;
print  $Date;
print  $Rep;
print  $Body;
close (MAIL);
close(NEWS);

 close(NEWS);
...e qui.
Non so che casini potrebbero succedere (permissions di execute
mancanti? come viene eseguito da sendmail lo script perl?), ma
guardare il return value e errno ($!) potrebbe essere utile.
Ciao,
Alberto
-- 
Alberto BARSELLA
PGP fingerprint = 13 3F 22 D2 0B 0A D3 25  F1 89 FE B5 82 AD 75 2A
** Beliefs are dangerous. Beliefs allow the mind to stop functioning.
A non-functioning mind is clinically dead.  Believe in nothing... **