Salver a tutti,
sto' cercando di inviare un mail in formato HTML.
La invio utilizzando il codice mail. Questa è la classe che utilizzo:

Codice PHP:
<?
class eMail
{
    var 
$to = array();
    var 
$cc = array();
    var 
$bcc = array();
    var 
$attachment = array();
    var 
$boundary "";
    var 
$header "";
    var 
$subject "";
    var 
$body "";

    function 
eMail($name,$mail)
    {
        
$this->boundary md5(uniqid(time()));
        
$this->header .= "From: $name <$mail>\n";
    }

    function 
to($mail)
    {
        
$this->to[] = $mail;
    }

    function 
cc($mail)
    {
        
$this->cc[] = $mail;
    }

    function 
bcc($mail)
    {
        
$this->bcc[] = $mail;
    }

    function 
attachment($file)
    {
        
$this->attachment[] = $file;
    }

    function 
subject($subject)
    {
        
$this->subject $subject;
    }

    function 
text($text)
    {
        
$this->body "Content-Type: text/plain; charset=ISO-8859-1\n";
        
$this->body .= "Content-Transfer-Encoding: 8bit\n\n";
        
$this->body .= $text."\n";
    }

    function 
html($html)
    {
        
$this->body "Content-Type: text/html; charset=ISO-8859-1\n";
        
$this->body .= "Content-Transfer-Encoding: quoted-printable\n\n";
        
$this->body .= "<html><body>\n".$html."\n</body></html>\n";
    }

    function 
send()
    {
        
// CC Empfänger hinzufügen
        
$max count($this->cc);
        if(
$max>0)
        {
            
$this->header .= "Cc: ".$this->cc[0];
            for(
$i=1;$i<$max;$i++)
            {
                
$this->header .= ", ".$this->cc[$i];
            }
            
$this->header .= "\n";
        }
        
// BCC Empfänger hinzufügen
        
$max count($this->bcc);
        if(
$max>0)
        {
            
$this->header .= "Bcc: ".$this->bcc[0];
            for(
$i=1;$i<$max;$i++)
            {
                
$this->header .= ", ".$this->bcc[$i];
            }
            
$this->header .= "\n";
        }
        
$this->header .= "MIME-Version: 1.0\n";
        
$this->header .= "Content-Type: multipart/mixed; boundary=$this->boundary\n\n";
        
$this->header .= "This is a multi-part message in MIME format\n";
        
$this->header .= "--$this->boundary\n";
        
$this->header .= $this->body;

        
// Attachment hinzufügen
        
$max count($this->attachment);
        if(
$max>0)
        {
            for(
$i=0;$i<$max;$i++)
            {
                
$file fread(fopen($this->attachment[$i], "r"), filesize($this->attachment[$i]));
                
$this->header .= "--".$this->boundary."\n";
                
$this->header .= "Content-Type: application/x-zip-compressed; name=".$this->attachment[$i]."\n";
                
$this->header .= "Content-Transfer-Encoding: base64\n";
                
$this->header .= "Content-Disposition: attachment; filename=".$this->attachment[$i]."\n\n";
                
$this->header .= chunk_split(base64_encode($file))."\n";
                
$file "";
            }
        }
        
$this->header .= "--".$this->boundary."--\n\n";

        foreach(
$this->to as $mail)
        {
            
mail($mail,$this->subject,"",$this->header);
        }
    }
}
?>

La cosa che non capisco ... se arriva a @virgilio.it @email.it OK, se arriva a @libero.it non visualizzo le immagini, guardo il corpo delle email e noto che mancano dei pezzi ( ad esempio src=http:// diventa src=ttp://) chi mi spiega il perchè? Oppure avete uno script testato che vada bene?


Dove sbaglio? E' un problema di codifica? VVoVe:


=============
NOTA
=============
Il testo dell'email (che poi altro non è che una serie di tag HTML) arrivano alla pagina che richiama la classe mediante una form.