Inviare una mail dal web (Parte 2)
Un breve articolo su come spedire ad un indirizzo e-mail dei dati raccolti da un form.
Riferimenti:
Inviare una mail dal web (Parte 1)
Il codice PHP
Come anticipato nella prima parte del piccolo tutorial, nel nostro codice useremo la comoda funzione
mail() del PHP. Non saranno compresi controlli sui campi (che credo affronteremo nella parte 3 del tutorial), ma vi sarà un semplice ciclo
if / else che controllerà l'esatto invio della email all'indirizzo impostato.
Apriamo dunque una nuova pagina web che chiameremo
inviaLaMail.php (vi ricordo che è proprio la pagina scritta nell'
action del form HTML della parte 1), mentre tra i tag <body> della pagina appena creata scriviamo:
<?php
/*********** variabili da settare ***********/
$to = "tua_mail@tuo_host.it"; //indirizzo email a cui verrà inviata l'email
$soggetto = "Contatto spedito dal mio sito"; //è il soggetto che comparirà nell'email
$invioOkTitolo = "Contatto spedito correttamente :-)";
$invioOkCorpo = "Grazie per avermi contattato";
$invioNoTitolo = "Errore";
$invioNoCorpo = "Si è verificato un errore... riprovare l'invio :-(";
$back = "<p><a href=\"javascript:history.back()\" title=\"Torna indietro\"><strong>Indietro</strong></a></p>";
/*********** fine variabili da settare ***********/
// costruzione corpo messaggio
$body = "Nome: " . trim(stripslashes($_POST["nome"])) . "\n";
$body .= "e-mail: " . trim($_POST["email"]) . "\n\n";
$body .= "Commento: \n" . trim(stripslashes($_POST["commento"])) . "\n";
// controllo invio
if (@mail ($to , $soggetto , $body , "From: $email")) {
echo "<h3>$invioOkTitolo</h3>";
echo "<p>$invioOkCorpo</p>";
echo "<p> </p>"; // crea paragrafo vuoto per creare uno spazio
echo $back;
}
else {
echo "<h3>$invioNoTitolo</h3>";
echo "<p>$invioNoCorpo</p>";
echo "<p> </p>"; // crea paragrafo vuoto per creare uno spazio
echo $back;
}
?>
Il codice direi che è oltremodo commentato quindi non mi dilungherò troppo in spiegazioni su come adattare lo script alle proprie esigenze. Ovviamente, in caso di problemi, potete commentare questo post.
Come scritto poco sopra
per il momento non ho implementato controlli sui campi, questo per evitare di appesantire troppo presto il tutto... magari faccio appunto una parte 3.
Riguardo alle funzioni usate due parole le spenderei sull'istruzione
if / else:
in pratica succede che
SE l'invio è corretto, ovvero la condizione scritta tra parentesi tonde risulta vera, la funzione
mail() verrà eseguita e verrà quindi visualizzato il codice dentro l' if,
ALTRIMENTI la funzione
mail() non verrà eseguita e apparirà il messaggio di errore.
Per quanto riguarda le altre funzioni usate, ovvero
trim() e
stripslashes vi rimando al manuale del PHP (
it.php.net/manual/it/function.trim.php e
it.php.net/manual/it/function.stripslashes.php ). Comunque servono per ripulire il testo preso dagli
input e dalla
textarea prima di venire elaborati.
A questo punto uppando le nostre due pagine
mail.html e
inviaLaMail.php (devono stare nella stessa dir) saremo pronti ad inviare la nostra email dal web :-)
Per i pigri
Per i più pigri ecco le due pagine belle pronte:
invio_mail_01.zip
Salut
drudo
Modificato da drudo 25/02/2005 13.26
Si consiglia la visione dell'immagine
con un browser degno di tal nome...