La presente guida mostrerà come sia possibile anche l'invio dei dati usando il componente perl nonostante in ambiente Windows non sia presente il sendmail, per farlo si usa una libreria presente nell'installazione di default di ActiveState che Aruba.it esegue sui propri Server.
Ecco di seguito l'anteprima di esempio e il link di download, contenente i due file:
Eseguito il download, basta aprire il codice con un qualsiasi editor e modificare le righe relative all'indirizzo email e al messaggio di ringraziamento visualizzabile dall'utenza successivamente l'invio dei dati.
Infine posizionare il file invia.pl all'interno della directory cgi-bin ed il file html contenente il modulo nella radice del dominio.
A seguire lo script del FormMal in perl con 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; |
Se apportate correttamente le modifiche nelle righe di codice evidenziate in rosso, il vostro
FormMail è funzionante.