Inviare email in HTML con PHP

08 Novembre 2011
Anche se potrebbe sembrare difficile, in realtà grazie alla funzione mail() del linguaggio PHP è possibile inviare email in formato HTML in maniera piuttosto semplice e veloce, tutto sta nel settare correttamente l'intestazione del messaggio.

 

Ecco un piccolo esempio di come potremmo inviare una email in HTML grazie ad un semplice script in PHP:

 

<?
    $mittente = "email@mittente.tld";
    $destinatario = "email@destinatario.tld";
    $oggetto = "Invio email in HTML con PHP";
    $corpo = "<b>Messaggio che include i tag HTML che vogliamo</b>";
    $intestazione = "MIME-Version: 1.0 \r\n";
    $intestazione .= "Content-type: text/html; charset=iso-8859-1 \r\n";
    $intestazione .= "From: NOME-MITTENTE <$mittente> \r\n"; 
    $intestazione .= "Reply-to: NOME-MITTENTE <$mittente> \r\n"; 
    $intestazione .= "to: NOME-DESTINATARIO <$destinatario> \r\n";
    
    #Decommentare riga successiva per inviare un "Copia per conoscenza"
    #$intestazione .= "cc: NOME-Cc <cc@email.tld> \r\n";

    #Decommentare riga successiva per inviare una "Cc nascosta"
    #$intestazione .= "bcc: NOME-Bcc <bcc@email.tld> \r\n";  

    if( @mail($destinatario, $oggetto, $corpo, $intestazione) )
     { echo "La e-mail è stata inviata con successo!";}
       else 
            {echo "Si è verificato un errore!"};
?>


La prima parte include le variabili $mittente dove andremo ad inserire la email del mittente, segue poi la variabile $destinatario dove andrà inserito l'indirizzo email del destinatario.

Si prosegue con la variabile $oggetto dove andremo ad inserire l'oggetto della email, per quello che riguarda invece la variabile $corpo si potrà finalmente inserire il proprio messaggio inclusi tutti i tag HTML che vogliamo.

L'ultima variabile, in questo caso "concatenata" è $intestazione nella quale vi è inserito il MIME-Version ed il Content-type dove in questo caso abbiamo inserito il set di caratteri iso-8859-1, tuttavia per l'italiano potremmo andare anche ad utilizzare il charset "internazionale" UTF-8.

Se vogliamo che il mittente visualizzi il nostro nome al posto della nostra email nel suo client di posta elettronica, basterà sostituire "NOME-MITTENTE" con il nostro nome, così come potremmo "assegnare" un nome anche al destinatario. In fine sarà possibile far "rispondere" alla nostra email inviata ad un indirizzo diverso sostituendo la parte di variabile $intestazione che comincia per "Reply-to".

Se volessimo invece effettuare l'invio della email anche in copia per conoscenza (Cc) o in copia per conoscenza nascosta (Bcc), basterà decommentare le relative righe di codice togliendo l'apice "#" dalle relative concatenazioni della variabile $intestazione.

L'ultima parte dello script usa la funzione di PHP mail() (nel nostro caso abbiamo inserito davanti la funzione mail la chiocciola "@", grazie alla quale eviteremo di stampare a video i possibili errori), nel caso la email venisse spedita avremmo come output un messaggio di conferma, in caso contrario visualizzeremmo semplicemente un messaggio di errore.

Pubblicato in: PHP
Tags: Email
Tutorials Correlati

Aggiungere un indirizzo email con cPanel
Se utilizzate cPanel per gestire il vostro hosting e avete la necessitÓ di ...

Lascia un commento
Nome

Email

Codice di verifica
 
© DominiOK, 2011-2021
Tutti i diritti sono riservati | Note Legali | Privacy
powered by GTWeb