Invio una email con il seguente codice, in modo di visualizzare l'immagine nel messaggio senza che il file .jpg compaia come allegato... xò il mio client di posta non visualizza l'immagine che viene inserita in chiaro negli allegati... come mai???
Codice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
// generiamo la stringa che funge da separatore
$boundary = "==String_Boundary_x" .md5(time()). "x";
// costruiamo le intestazioni specifiche per un messaggio con parti relazionate
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/related;\r\n";
$header .= " boundary=\"$boundary\";\r\n\r\n";
// questa parte del messaggio viene visualizzatan solo se il programma non sa interpretare i MIME poiché è posta prima della stringa boundary
$testo = "Se visualizzi questo testo il tuo programma non supporta i MIME\r\n\r\n";
// costruiamo la sezione in formato html
$testo .= "--$boundary\r\n";
$testo .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
$testo .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
//$testo .= "<html><body>
Questo messaggio è in formato [i]html[/i] con immagine inline.</p>
Visita il sito <a href=\"http://www.html.it\">[url]www.html.it[/url]</a><img src=\"cid:MiaImmagine123\" alt=\"mia immagine\"></p></body></html>\n\n";
$testo .=file_get_contents("file.php");
// costruiamo la sezione contenente l'immagine cui attribuiamo l'id MiaImmagine123
$testo .= "--$boundary\r\n";
$testo .= "Content-ID: <MiaImmagine123>\r\n";
$testo .= "Content-Type: image/jpeg\r\n";
$testo .= "Content-Transfer-Encoding: base64\r\n\r\n";
// leggiamo il file corrispondente all'immagine dal nostro server
$allegato = "images/logo_dash.jpg";
$file = fopen($allegato,'rb');
$data = fread($file,filesize($allegato));
fclose($file);
// usiamo la codifica base64 per trasmettere il file
//$data = chunk_split(base64_encode($data));
//$testo .= "$data\r\n\r\n";
// chiusura del messaggio con la stringa boundary
$testo .= "--$boundary--\r\n";
include_once('smtp/SMTPmailer.php') ;
$mittente="from_me";
$oggetto="oggetto";
//Carico in un array gli indirizzi a cui mandare il messaggio
$arrayDestinatari=array("simoxxx@katamail.com");
$x=new SMTPmailer($yyy,$mittente) or die('Impossibile istanziare oggetto valido');
$x->connect('www.libero.it') or die('Non riesco a connettermi '.$x->getError()) ;
foreach($arrayDestinatari as $arr){
$messaggioPersonalizzato=$testo;
$x->mail($arr, $oggetto, $messaggioPersonalizzato,$header) or die( $x->getError() ) ;
}
$x->close() or die('Non riesco a chiudere') ;
Visualizzando l'html della mail, in corrispondenza dell'immagine ho questo codice(esatto)
<p align="center">Logo dash:<img src=\"cid:MiaImmagine123\"></p>