Visita Orebla.it su Facebook Segui Orebla.it su Twitter Vedi i video su YouTube di Orebla.it Unisciti alle cerchie di Orebla.it
DOVE TI TROVI: \\ Home Page\php\Guida al PHP: Inviare email in formato testo e/o HTML

GUIDA AL PHP:
autore : Orebla

Inviare email in formato testo e/o HTML

 

In questo guida illustrer? l'utilizzo della funzione mail() che permette l'invio tramite server delle email, possono essere in formato testo oppure HTML oppure possono avere degli allegati, insomma ? personalizzabile al massimo. Nello specifico vi illustrer?, per ora, invio di email in HTML e/o in testo.

Per prima cosa vi do i link alla documentazione ufficiale relativa alla funzione mail():

Introduzione: http://it.php.net/manual/it/ref.mail.php 

Funzione: http://it.php.net/manual/it/function.mail.php.

Come potete vedere il suo utilizzo ? veramente semplice, posso affermare che se non abbiamo esigenze di invio HTML o di inviare allegati in poche righe il nostro script ? pronto.

Allora ecco la funzione: mail ( string a, string oggetto, string messaggio, string eventuale header ).

DETTAGLI:
La funzione mail ? booleana, cio? restituisce TRUE o FALSE. TRUE nel caso la mail venga processata e inviata corretamente, FALSE in caso contrario. Questo ci aiuter? moltissimo nella gestione di eventuali errori.
Primo argomento della funzione ? il destinatario, secondo l'oggetto della mail e per ultimo quello pi? importante. Dico quello pi? importante perch? se noi dobbiamo inviare mail in HTML oppure con allegati ci deve per forza essere un header.

Ora che vi ho illustrato tutti (o quasi) i dettagli possiamo partire con l'invio di una semplice email in formato testo.

Ecco il codice necessario:

<?

$destinatario = "miamail@ciao.it";

$oggetto = "Prima email di prova";

$corpo = "Questa mail ? stata inviata con PHP";

if (mail($destinatario, $oggetto, $corpo))
{
print "Inviata correttamente a $destinatario";
}
else
{

print "Problemi di invio";
}

?>

Perfetto, questo semplice porzione di codice ci permette di inviare in modo molto semplice una mail di TESTO. Come vedete non c'? molto da spiegare, anche per chi ? alle prime armi il codice si presenta pulito senza particolari funzioni.

Ho voluto aggiungere alla fine un ciclo IF per il controllo dell'invio, come vedete il ciclo controlla che mail() restituisca TRUE o FALSE, nel primo caso ci stamper? il messaggio di OK: Inviata correttamente a miamail@ciao.it; in caso contrario ci restituisce: Problemi di invio.

Vi avviso subito che data la semplicit? del codice la mail arriver? senza un destinatario, dato che avrete sicuramente notato che non lo abbiamo inserito! Potrebbe poi in alcuni client non essere leggibile.

Fino a qui tutto OK, in quanto non c'? nulla da aggiungere. In un'altra guida spiegher? poi come potenziare questi script per poter creare supporti a newsletter.

Ora vediamo come inviare pagine HTML invece che semplice TESTO. 

Devo fare una premessa prima: Molti server di posta (quali Virgilio, Gmail, Yahoo...) offrono la possibilit? di ricevere pagine HTML come email, per? levano molti TAG non proprio sicuri (quali JavaScript) per impedire attacchi. Quindi non pensate di inserire pagine HTML molto complesse perch? nella maggior parte delle volte verranno tolte di quella porzione di codice che miner? poi il suo funzionamento generale. Con questo vi voglio indurre ad utilizzare un HTML leggero, semplice e pulito.

La cosa fondamentale che differenzia una mail di TESTO da una HTML ? l'header. Ora non voglio farvi una guida su come le email vengono gestite dal server per poi essere smistate, per? ogni intestazione serve per dare il giusto input di lettura al client di posta o browser (nel caso la lettura avvenga via web).

Per inviare semplici mail in HTML tutto l'header che ci serve ? il seguente:

Subject: Newsletter Orebla.it
MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1
From: <email@mittente.it>

L'header non pu? essere costruito a caso in quanto utilizza uno standard mondiale, che tutti (o quasi) rispettano. Quindi se volete che le vostre email siano lette correttamente leggetevi i seguenti link --> RFC 1896, RFC 2045, RFC 2046, RFC 2047, RFC 2048 e RFC 2049. Lo consiglio per chi ? pi? esperto e sopratutto per chi legge bene l'inglese!!

A noi bastano quelle 4 righe. Vediamo come modificarle per adattarle ai nostri utilizzi:

<?

$destinatario = "miamail@ciao.it";

$mittente = "email@mittente.it";

$oggetto = "Prima email di prova";

$corpo = "<html><head></head><body>Questa mail ? stata inviata con PHP in HTML</body></html>"; 

// Intestazioni HTML
$mail_in_html = "MIME-Version: 1.0\r\n";
$mail_in_html .= "Content-type: text/html; charset=iso-8859-1\r\n";
$mail_in_html .= "From: <$mittente>";

if (mail($destinatario, $oggetto, $corpo, $mail_in_html))
{
print "Inviata correttamente a $destinatario";
}
else
{

print "Problemi di invio";
}

?>

 

Come vedete abbiamo aggiunto in tutto 4 o 5 righe e modificato il corpo della mail. L'header ci ha permesso di inserire nel corpo tutti i TAG HTML fondamentali per creare una pagina. $mail_in_html sar? il nostro header che va aggiunto dopo il $corpo nella funzione mail().

Ora possiamo inserire in $corpo tutta la nostra pagina HTML che questa verr? spedita e letta correttamente!! Ovviamente non dimentichiamoci i TAG!






Articoli utili:
Jailbreak iOS 10: tweaks compatibili

Recensione iPhone 6

IPhone 7 uscito, novita, prezzi