Ciao a tutti
Vengo subito al problema.
Facendo riferimento ad un articolo di html.it ho impostato una newsletter in php per inviare mail in formato html con immagini.
Nel testare questo piccolo software indirizzandolo alla mia mail (su mac) visualizzo correttamente la mail nel formato html.
Provando ad inviarla al mio cliente mi dice che non la visualizza...pensavo dipendesse dal mancato supporto dei MIME ma lui mi dice che altre mail in formato html le visualizza correttamente.
Posto il codice.
Codice PHP:<?php
// costruiamo alcune intestazioni generali
$destinatario = "info@destinatario.com";
$header = "From: mittente <info@mittente.com>\n";
$header .= "X-Mailer: Newsletter\n";
// generiamo le stringhe utilizzate come separatori
$boundary = "==String_Boundary_x" .md5(time()). "x";
$boundary2 = "==String_Boundary2_y" .md5(time()). "y";
// costruiamo le intestazioni specifiche per un messaggio
// con parti relazionate
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/related;\n";
$header .= " type=\"multipart/alternative\";\n";
$header .= " boundary=\"$boundary\";\n\n";
$messaggio = "Se visualizzi questo testo il tuo programma non supporta i MIME\n\n";
// il primo segmento del multipart/related
// è definito come multipart/alternative
$messaggio .= "--$boundary\n";
$messaggio .= "Content-Type: multipart/alternative;\n";
$messaggio .= " boundary=\"$boundary2\";\n\n";
// sezione alternativa in puro testo
$messaggio .= "--$boundary2\n";
$messaggio .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
$messaggio .= "Se non visualizzi la newsletter nel formato html, clicca su seguente link.\n\n";
// sezione alternativa in formato html
$messaggio .= "--$boundary2\n";
$messaggio .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
$messaggio .= "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />
<title>Documento senza titolo</title>
<style type=\"text/css\" media=\"all\">
body{
margin:0;
padding:15px;
background:#104e75;
text-align:center;
}
.bordo{
border:solid 2px #FFCC00;
}
</style>
</head>
<body>
<img src=\"cid:newsletter_ok\" width=\"500\" height=\"770\" alt=\"newsletter\" class=\"bordo\" />
</body>
</html>\n";
// chiusura della sezione multipart/alternative
$messaggio .= "--$boundary2--\n";
// seconda sezione del multipart/related contenente l'immagine
$messaggio .= "--$boundary\n";
$messaggio .= "Content-ID: <newsletter_ok>\n";
$messaggio .= "Content-Type: image/jpeg\n";
$messaggio .= "Content-Transfer-Encoding: base64\n\n";
$allegato = "newsletter_ok.jpg";
$file = fopen($allegato,'rb');
$data = fread($file,filesize($allegato));
fclose($file);
$data = chunk_split(base64_encode($data));
$messaggio .= "$data\n\n";
// chiusura della sezione multipart/related
$messaggio .= "--$boundary--\n";
$subject = "newsletter";
if( @mail($destinatario, $subject, $messaggio, $header) ) echo "e-mail inviata con successo!";
else echo "errore nell'invio dell'e-mail!";
?>

Rispondi quotando