Home
Home
Tutorials
   PHP
   Java
   Tutti...
Manuali
SmartImage
Marketing
Downloads
Contatti
Affiliati

  Da vedere
Hosting
Statistiche per siti
Corsi per webmaster
Hardware
Processori


  OnFocus
UnripeGod

Treize_Shell

Quanti internauti ci sono in Italia? Quanti nel mondo?

  Siti Amici
Miki News
Giochi gratis
Areagratis
Baratto Online
AI Machines
Guide e Manuali Gratis
BLOO.it
Canoa Quebrada
Sniper Wolf 's blog
Italia Punto Net
Antivirus
Visure camerali
Add to Technorati Favorites

Tutti i siti amici
Diventa Affiliato

 


Autore: Claudio Venturini
Categoria: php
Livello: normale Livello normale

Inviare email con PHP: parte 2

Utilizzare mail() per inviare email in formato HTML

Nella seconda parte del tutorial dedicato alla funzione mail() di PHP approfondiremo un argomento piuttosto dibattuto e non sempre semplice per chi è alle prime armi: come inviare email tramite mail() in formato HTML. Inviare email HTML vuol dire poter aggiungere ad una email immagini ed elementi multimediali come addirittura animazioni in flash.

Per poter inviare email in formato HTML dobbiamo aggiungere all'header del nostro messaggio due intestazioni particolari. Consideriamo lo stesso messaggio che avevamo creato nella prima parte di queto tutorial e modifichiamo il codice aggiungendo queste due intestazioni:

<?php
$header 
"MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= 'From: "Il mio nome" <io@mioserver.it> \r\n';
$header .= "Reply-to: collega@mioserver.it\r\n"
$destinatario "bob@server.com";
$oggetto "email di prova";
$messaggio "Ecco la mia prima email"
mail($destinatario$oggetto$messaggio$header);
?>

La prima intestazione che abbiamo aggiunto è la "MIME-Version:", che specifica la versione della codifica MIME che verrà utilizzata nel messaggio, in questo caso la 1.0. La seconda instestazione è invece formata dal "Content-type:", che specifica il tipo di dati contenuti nel messaggio, in questo caso "text/html" significa che si tratta di testo da decodificare come HTML, e dal "charset=" ovvero lo standard set di caratteri utilizzati nel messaggio. Lo standard "ISO-8859-1" è lo standard del web e può essere considerato come una costante. Senza queste intestazioni il client di posta elettonica non riconoscerebbe che si tratta di un messaggio in formato HTML, e visualizzerebbe il codice come semplice testo.

Fatto ciò è possibile inserire nel testo del messaggio qualsiasi tipo di oggetto, purchè questo sia supportato da HTML. In pratica, tutto ciò che potete mettere in una pagina web potete metterlo anche in una email in formato HTML.

Bisogna però ricordare di utilizzare alcuni accorgimenti:

  • il testo deve essere codificato esattamente come una comune pagina html, ovvero con i tag <html>...</html> di apertura e chiusura e con al loro interno i tag <head>...</head> e <body>...</body>.
  • tutti i contenuti multimediali, come ad esempio le immagini, devono essere riferite con il loro percorso assoluto al server web, ovvero con il percorso del tipo "http://www.server.com/immagine.gif". Ciò è necessario perchè se ci riferiamo agli oggetti con percorsi relativi si richiede che l'utente disponga di tali oggetti sul proprio pc, e ciò non è possibile. Precisiamo che c'è un modo diverso e più complesso per includere le immagini nel messaggio email, ma in questa parte di tutorial non lo trattiamo.
  • è possibile utilizzare i fogli di stile (CSS) purchè questi non siano richiamati dall'esterno ma siano inclusi nei tag <head> del codice HTML. Se proprio sul vuole richiamare un CSS esterno bisogna farlo con percorso assoluto, come per tutti gli altri oggetti.

Vediamo quindi in pratica come possiamo modificare il codice precedente utilizzando però codice HTML e aggiungendo anche un'immagine:

<?php
$header 
"MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= 'From: "Il mio nome" <io@mioserver.it> \r\n';
$header .= "Reply-to: collega@mioserver.it\r\n"
$destinatario "bob@server.com";
$oggetto "email di prova in HTML ";
$messaggio '
<html>
<head>
<title>La mia email HTML</title>
<style type="text/css">
body {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; font-weight:normal; color:#000000;}
</style>
</head>
<body>
<p>Ecco la mia prima mail in HTML.<br>
Questo testo  in <strong>bold</strong></p>
<p>E qui ci metto una immagine: <img src="http://www.server.com/immagini/mail.gif"></p>
</body>
</html>
'
;
mail($destinatario$oggetto$messaggio$header);
?>

Inviare email con PHP: 1 parte Precedente Indice Successivo Sostituire parole o testi in una variabile
Inviare email con PHP: 1 parte Sostituire parole o testi in una variabile