Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Un semplice Formmail

Articolo scritto da Claudio Garau

Inviare email tramite form con uno script CGI non richiede particolari conoscenze a livello di programmazione; in questo breve articolo vedremo come si possa costruire in pochi passaggi un efficiente sistema di invio automatico di e-mail verso un utente.

Per far questo utilizzeremo un form che richiede soltanto l'inserimento di un indirizzo posta elettronica, come accade per esempio per i moduli d'iscrizione alle mailing list.

Di seguito riportiamo il semplice codice HTML che starà alla base del nostro form mail:

<html> 
<head> 
<title>Form mail in CGI</title> 
</head> 
<body> 
<form action="http://www.sito.it/cgi-bin/mail.cgi" method="post">
Inserisci il tuo indirizzo email nel campo sottostante:<br /> 
<input name="email" type="text" size="30"><br /> 
<input type="submit" value="Spedisci"> 
</form> 
</body> 
</html>
Ora daremo uno sguardo al codice necessario per l'invio della e-mail di risposta, successivamente passeremo alle spiegazioni.
#!/usr/bin/perl
use CGI;

my $mailer = new CGI;
my $sender = "/usr/sbin/sendmail -t";
my $mittente = "Reply-to: mail@sito.it";
my $oggetto = "Subject: Messaggio ricevuto";
my $messaggio = "Grazie per la tua iscrizione alla mailing list.";
my $destinatario = $mailer->param('email');

unless ($destinatario)
{
  print $mailer->header;
  print "Hai dimenticato di inseririre il tuo indirizzo email.";
}

my $invia = "To: ".$mailer->param('email');

open(SENDMAIL, "|$sender") or die "Problama in $sender: $!";
print SENDMAIL $mittente;
print SENDMAIL $oggetto;
print SENDMAIL $destinatario;
print SENDMAIL "Content-type: text/plain\n\n";
print SENDMAIL $messaggio;
close(SENDMAIL);

print $mailer->header;
print "Riceverai una mail di benvenuto tra pochi istanti.";
Lo script sfrutta da una parte la semplice sintassi del linguaggio Perl per il codice, dall'altra utilizza Sendmail per l'invio, il servizio SMTP Open Source per la posta elettronica più utilizzato e diffuso in ambiente Linux (e quindi anche il più comune trà i server web).

Come primo passaggio abbiamo definito tutte le variabili necessarie all'invio: percorso al server SMTP, mittente, oggetto, testo della mail e destinatario (parametro inviato tramite form).

(L'articolo continua più sotto...)

In secondo luogo abbiamo introdotto una funzione di controllo, unless() che verifica l'esistenza dell'argomento passatole come parametro, nel nostro caso la variabile '$destinatario'. Se il parametro è inesistente viene lanciata una notifica che lo richiede.

Infine, le variabili vengono passate al server SMTP, che viene aperto, verificato nel suo funzionamento e preparato all'invio dei dati raccolti verso l'indirizzo di posta indicato.

Una volta inviata l'email Sendmail viene chiuso arrestando il processo in corso e l'utente visualizza una segnalazione dell'avvenuto invio della email di benvenuto.

Corsi
Corso LinuxCorso Linux
Guida completa al sistema open-source. A partire da 39 €.
Corso MySQLCorso MySQL
Gestione del database open-source. A partire da 49 €.
Corso PHPCorso PHP
Corso completo per la creazione di siti Web dinamici. Sconto -25% sino al 23/05/2012.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122