Inviare una mail automatica con PHP

Inviare una mail automatica con PHP

In questo articolo vedremo come inviare una mail automatica in php.

Nel nostro esempio creeremo un classico form di contatti in html, invieremo i dati raccolti ad un 'elaboratore' scritto in php che li filtrerà ed elaborerà le mail da spedire in automatico.

Iniziamo dunque dalla creazione di un form in html. Nel nostro esempio richiediamo semplicemente all'utente Nome, Cognome Email e Messaggio.


<form action="sender.php" method="POST" >
    <label>Nome</label>
    <input type="text" name="nome" />
    <label>Cognome</label>
    <input type="text" name="cognome" />
    <label>Email</label>
    <input type="email" name="email" />
    <label>Messaggio</label>
    <textarea name="messaggio" > </textarea>
    <input type="submit" value="Invia" />
</form>

Abbiamo creato un semplice form in html, abbiamo impostato action uguale a sender.php, questo sarà il file dove inseriremo il nostro "elaboratore" in php. Il metodo utilizzato è il mehod POST (vedere qui la differenza tra il metodo GET e il metodo POST). Abbiamo poi dato il nome a tutti gli input (!Attenzione verranno poi utilizzati per il recupero dei dati).

Andiamo ora a costruire il nostro sender.php

Iniziamo con recuperare tutti i dati:


/* recupero dei dati */
$nome=$_POST['nome'];
$cognome=$_POST['cognome'];
$email=$_POST['email'];
$messaggio=$_POST['messaggio'];

$_POST è un array che contiene tutti i dati passati con il metodo post, li recuperiamo con il nome assegnato nel form html.

Ora creiamo e spediamo la mail che arriverà a noi:


/* creazione testo mail */

$testo_mail="Nuovo contatto dal sito:\r\n
Dati del richiedente\r\n
Nome:$nome\r\n
Cognome:$cognome\r\n
Messaggio:$messaggio";

/* creazione oggetto e testata mail */

$mail_headers = "From: $nome  <$email>\r\n";
$mail_headers .= "Reply-To: " .  $email . "\r\n";
$oggetto="Nuovo contatto dal sito";

/* invio mail */
if(mail('nostramail@example.com', $oggetto, $testo_mail, $mail_headers))
         {echo 'la mail è stata spedita con successo';}
else  
         {echo 'la mail non è stata inviata';}

In questo blocco di codice abbiamocreato il testo della mail che vogliamo ricevere inserendo le variabili ricavate dal form html, abbiamo poi creato l'oggetto e delle informazioni aggiuntive da inserire nella testata della mail, come mittente (From:) e l'indirizzo di risposta(Reply-To).

!Attenzione quando scriviamo le informazioni aggiuntive dobbiamo ricordarci di separarle con dei ritorni a capo (\r\n)

Infine abbiamo usato la funzione mail() per inviare il messaggio. Il primo parametro è l'indirrizo mail del destinatario, nel secondo inseriamo l'oggetto poi il testo ed infine le informazioni aggiuntive.

Per verificare se la mail è stata spedita o meno abbiamo utilizzato un ciclo if.

Per maggiori informazioni sulla funzione mail() visitate questa pagina.

!Attenzione in questo esempio non abbiamo fatto un controllo dei dati raccolti tramite form perchè non era l'oggetto dell'articolo. Il controllo dei dati inseriti dagli utenti vanno sempre fatti!

Commenti

Valerio Pagliari
2021-04-16 14:22:41
come si fa con le credenziali di accesso?

Lascia un commento: