Creare un form per l’invio di email dal proprio sito con Html e Php
Per un sito web è fondamentale che i propri utenti possano prendere contatto con il webmaster o la redazione. In questo tutorial vedremo come creare una pagina da cui inviare email sfruttando html e php, senza l’utilizzo di client di posta o webmail.
Per inviare una email da un sito web possono essere usati due metodi.
Il primo è quello di usare un comune link in questo modo:
<a href="mailto:indirizzo@email.it">indirizzo@email.it</a>
che produrrà il seguente risultato:
Questo è il metodo più semplice per inviare email dal proprio sito, ma non il più efficace. Infatti l’indirizzo del destinatario, che è mostrato in chiaro è facilmente utilizzabile da programmi automatici per l’invio di spam.
Il secondo metodo utilizza php oltre al consueto linguaggio html, vediamo come:
La prima cosa da fare è creare un form attraverso il quale gli utenti inseriranno i propri dati. Nel nostro esempio chiederemo al navigatore di inserire il proprio nome, l’email e un messaggio.
Il codice da utilizzare per creare un form che svolga questa funzione è il seguente:
<form name="mailform" method="post" action="<?=$_SERVER['PHP_SELF'] ?>"> Nome <input type="text" name="nome" /> Email <input type="text" name="email" /> <textarea name="messaggio" cols="10" rows="10">Inserisci il tuo messaggio qui..</textarea> <input type="submit" name="Submit" value="Invia!" /> <input type="reset" name="Submit2" value="Cancella" /> </form>
Analiziamo il codice:
<form name="mailform" method="post" action="<?=$_SERVER['PHP_SELF'] ?>">
è il tag dentro al quale dobbiamo inserire gli elementi da inviare. name indica il nome del form (mailform), method è il modo in cui vengono inviate le variabili (post ovvero non visibili nell’url) infine action definisce la pagina a cui inviare i dati raccolti (<? $_SERVER['PHP_SELF'] ?> inviamo i valori alla stessa pagina in cui risiede il form).
<input type="text" name="nome" />
crea una casella di testo monoriga in cui scrivere, inquesto caso il nome e l’email. Gli attibuti type e name sono rispettivamente il tipo di campo (text) e il nome della variabile (nome e email) da inviare alla pagina php.
<textarea name="messaggio" cols="40" rows="5"></textarea>
crea un’area in cui e possibile scrivere il messaggio. Gli attributi name, cols e rows sono rispettivamente il nome della variabile (messaggio), il numero di colonne (40) e di righe (5) dell’area.
<input type="submit" name="Submit" value="Invia!" />
crea il bottone per inviare i dati, la variabile si chiama Submit e il suo valore sarà Invia! .
<input type="reset" name="Submit2" value="Cancella" />
crea il bottone che permette di resettare il contenuto del form.
Non ci resta che creare la parte in php che effettuerà il vero e proprio invio dell’email.
Caricamento ...
Questo è il link della pagina che voglio inviare via e-mail una volta compilata:
http://europeanfestival.altervista.org/form2.htm
potreste dirmi cosa c’è che non funziona? grazie!
Purtroppo la pagina html non è utile per identificare il problema.
Devi mostrarci il codice sorgente (php).
potrebbe essere d’aiuto anche questo post Form Email
[php]
[/php]
Salve a tutti,
volevo chiedere un cosa,
quando invio un email con questo sistema arriva a destinazione correttamente ma c’è solamente il messaggio, non appare chi l’ha mandato e il nome di chi l’ha scritto.
I campi del form riguardanti il nome e email non vendono spediti…
il codice usato è quello descritto sopra.
Grazie mille per qualsiasi info.
E’ necessario aggiungere le seguenti righe di codice:
// Intestazioni aggiuntive $headers = 'From: Luca <luca@mail.com>' . "\r\n"; //invio la mail $mail=mail("destinatario@email.it", "Oggetto email", $messaggio, $headers);