Ricerca
Ricerca Avanzata
Vai a:
ArubaScreen
lo screensaver di Aruba:
supporta anche i multi-monitor!



Cómo realizar un FormMail en perl con NET::SMTP



  
versión española

Este guía muestra como sea posible también el envío de los datos utilizando el componente perl no obstante en ambiente Windows no haya el sendmail; para hacerlo se utiliza una librería presente en la instalación de default de ActiveState que Aruba.it ejecuta sobre propios Servidores.

Abajo el estreno de ejemplo y el enlace de descarga, contenente los dos archivos:

 

 


Ejecutada la descarga,  debe abrir el código con un cualquier editor y modificar las líneas relativas a la dirección email y al mensaje de agradecimiento que se visualiza por los usuarios  después del envío de los datos.

En fin posicionar el fichero invia.pl dentro del directorio cgi-bin y el file html contenente el módulo en la raíz del dominio.

A continuación el script del FormMal en perl con net::smtp:

 

#*esempio in perl su vademecum.aruba.it per windows
#*uso net::smtp

$oggettoMail = "Invio dal dominio";

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
if ($allow != 1) {
$value =~ s/<([^>]|\n)*>//g;
}
$FORM{$name} = $value;
}


use Net::SMTP;
$smtp = Net::SMTP->new('smtp.aruba.it');
$smtp->mail('mailmittente@technet.it');
$smtp->to('miacasella@miodominio.it');
$smtp->data();
$smtp->datasend("To: linkbruttocane\@aruba.it\n");
$smtp->datasend("From: mailmittente\@technet.it\n");
$smtp->datasend("Subject: $oggettoMail\n");
$smtp->datasend("\n");

$smtp->datasend(" nome = $FORM{'nomè}\n indirizzo email = $FORM{'email'}\n proviene da = $FORM{'provenienza'}\n ha lasciato il messaggio = $FORM{'messaggio'}\n");
$smtp->dataend();
$smtp->quit;


print "Content-Type: text/html\n\n";
print "<HTML>\n";
print "<TITLE>Messaggio inviato</TITLE><font face=verdana size=2>\n";
print "Mail spedita correttamente, ti contatteremo al più presto all'indirizzo da te indicato \n";

if ($FORM{'email'}) {
print "<b> $FORM{'email'}</b>\n";
}

print "<p><a href=\"./\">Torna </a></p>\n";
print "</font></body></html>\n";
exit;



Si se han hecha las modificaciones correctamente en las líneas de código evidenciadas en rojo,  FormMail funcionará.