Newsgroup: it.comp.lang.perl
Titolo: spedire mail.

vorrei fare uno script che sia in grado di spedire mail verso un server.
cercando tra i pacchetti debian, la distribuzione linux che uso, non ho
trovato nessun modulo adatto allo scopo, debian non ne fornisce alcuno?

Si è possibilissimo.
I moduli non fanno parte di debian o linux ma della distribuzione Perl.
Via più semplice:
Loggati com root.
Lancia "perl -e shell"
Entrando nella shell puoi dare un:
shell>search nome::modulo
Trovato modulo
shell>install nome::modulo
Spero di esserti stato utile!

 Lancia "perl -e shell"
lanciato ma non succede niente.


Questa non e' la via piu' semplice.
(a parte che "perl -e shell" e' sbagliato. Casomai e' "perl -MCPAN -e shell")
La via piu' semplice, in Debian, e'
# apt-get install libnet-smtp-server-perl
Che installa Net::SMTP ed eventuali moduli da cui dipende.
Ciao
gmax
-- 
   ____ ____  _____ _   _
  / _  |    \(____ ( \ / )
( (_| | | | / ___ |) X (
  \___ |_|_|_\_____(_/ \_)
(_____|
MySQL Certified Professional
Sapere, saper fare, fare, far sapere
http://gmax.oltrelinux.com

Certo perchè sono un babbino :-)
Mi sono dimenticato un pezzo.
perl -MCPAN -eshell
Non mi ricordo se ci vuole lo spazio o meno stra la '-e' e la 'shell'
Ora dovrebbe funzionare...

 Che installa Net::SMTP ed eventuali moduli da cui dipende.
Correzione
per il problema proposto e' sufficiente
# apt-get install libnet-perl
# apt-cache show libnet-perl
Package: libnet-perl
Priority: optional
Section: perl
[SNIP]
Description: Implementation of Internet protocols for Perl
  libnet contains Perl implementations of the following protocols:
  Net::FTP (RFC959), Net::SMTP (RFC821), Net::Time (RFC867 & RFC868),
  Net::NNTP (RFC977), Net::POP3 (RFC1939). It also contains various
  utility functions for implementing new protocols.
ciao


 trovato nessun modulo adatto allo scopo, debian non ne fornisce alcuno?
Usando Net::SMTP e questo script non dovresti avere problemi:
#!/usr/bin/env perl
use Net::SMTP;
#apre connessione server smtp:
$smtp = Net::SMTP->new('
smtp.server.com
');
#indirizzo mittente:
$smtp->mail('
us...@here.com
');
#indirizzo destinatario:
$smtp->to('
us...@there.com
');
#avvia email:
$smtp->data();
#intestazioni:
$smtp->datasend("To: 
us...@there.com
\n");
$smtp->datasend("From: 
us...@here.com
\n");
$smtp->datasend("\n");
#corpo:
$smtp->datasend("Hello, World!\n");
#termina invio:
$smtp->dataend();
#chiude connessione server smtp:
$smtp->quit;
-- 
bye
ance

 #!/usr/bin/env perl
Una curiosita': perche' usi #!/usr/bin/env perl e non semplicemente
#!/usr/bin/perl ?

 Certo perchč sono un babbino :-)

Si, ci vuole lo spazio.

 Che installa Net::SMTP ed eventuali moduli da cui dipende.
Io uso Mail::Sender, lo trovo molto comodo.
(e per creare la Mail in HTML uso HTML::Template).
--- Esempio ---
use Mail::Sender;
use HTML::Template;
my $mail= new Mail::Sender;
$Mail::Sender::NO_X_MAILER=1;
$mail->OpenMultipart({
    smtp      =>$Mail_smtp,
    from      =>$mail_from,
    to        =>$mail_to,
    subject   =>'blablabla',
    multipart =>'related',
}) or die;
$mail->Part({
    ctype       =>'text/html',
    charset     =>'iso-8859-1',
    encoding    =>'Quoted-printable',
    disposition =>'none',
})->SendEnc($templ->output());
# $tmpl è un oggetto di tipo HTML::Template debitamente compilato
# Inserisco le immagini collegate all'HTML.
foreach (@$immagini){
    $mail->Attach({
        ctype       =>'image/gif',
        file        =>"$_",
        content_id  =>'*',
        disposition =>'inline',
        encoding    =>'Base64',
    });
}
$mail->Close or die;

 #!/usr/bin/perl ?
E` possibile usare env nella prima riga di uno script (la c.d.riga 
"sha-bang") quando non si conosce il percorso della shell o dell'interprete.
-- 
bye
ance

 poter spedire le mail, scusa la mia ingnoranza ma e' cosi'?
Io utilizzo postfix 2.0.6 su una Linux Box con Mandrake 9.1.
-- 
bye
ance

 poter spedire le mail, scusa la mia ingnoranza ma e' cosi'?
E' necessario disporre di un server SMTP (locale o remoto) che accetti il
messaggio. 'sendmail' è un server SMTP, ma non è l'unico esistente.
Considera lo script in questione come puramente illustrativo. Se vuoi
qualcosa di sufficientemente robusto devi introdurre un minimo di controllo
e gestione degli errori.
Max

#!/usr/bin/env perl
#testato su mdk9.1 by ance#
use Mail::Sendmail;
$message="You are my life";
%mail= (To	=> '
an...@nospam.org
',
	Cc	=> '
an...@brain.storm.org
',
	From	=> '
myg...@friend.com
',
	Subject	=> 'Hi!',
	Message	=> $message,
	smtp	=> '
smtp.ance.org
'
);
sendmail (%mail) or $mailerr = 1;
if ($mailerr)
{
print $Mail::Sendmail::error;
}
else{
print "Messaggio inviato!\n";
}
-- 
bye
ance