ciao a tutti vorrei inviare un allegato pdf con un'immagine all'interno del testo html
il problema è che non so bene come fare..
se metto Content-Type: multipart/related
mi vanno le immagini inserite nel testo
se metto Content-Type: multipart/mixed
mi va l'allegato
quindi ho pensato di metterli entrambi...ma così non va (vedi codice)
Qualcuna sa aiutarmi?
Vi ringrazio in anticipo
Codice PHP:
// generiamo la stringa che funge da separatore
$boundary = "==String_Boundary_x" .md5(time()). "x";
$boundary2 = "==String_Boundary_x" .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/mixed\";\n";
$header .= " boundary=\"$boundary\";\n\n";
// questa parte del messaggio viene visualizzata
// solo se il programma non sa interpretare
// i MIME poiché è posta prima della stringa boundary
$messaggio = "Se visualizzi questo testo il tuo programma non supporta i MIME\n\n";
// costruiamo la sezione in formato html
$messaggio .= "--$boundary\n";
$messaggio .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
$messaggio .= "<html>
<body>";
$messaggio .= "<img src=\"cid:immagine\" alt=\"immagine\">
";
$messaggio .= "</body></html>\n\n";
// costruiamo la sezione contenente l'immagine
// cui attribuiamo l'id MiaImmagine123
$messaggio .= "--$boundary\n";
$messaggio .= "Content-Type: image/jpg;";
$messaggio .= "name=".$_POST['nome']."\n";
$messaggio .= "Content-Transfer-Encoding: base64\n";
$messaggio .= "Content-ID: <immagine>\n\n";
// leggiamo il file corrispondente all'immagine dal nostro server
$allegato ="../attivita/1/comunicato_".$id_email.$riga_messaggio['immagine_ext'];
$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));
$messaggio .= "$data\n\n";
// chiusura del messaggio con la stringa boundary
// Aggiungo l'allegato al messaggio
$messaggio .= "--$boundary\n";
// questo segmento del multipart/related
// è definito come multipart/mixed
$messaggio .= "Content-Type: multipart/mixed;\n";
$messaggio .= " boundary=\"$boundary2\";\n\n";
//sezione multipart/mixed
$messaggio .= "--$boundary2\n";
$messaggio .= "Content-Type: application/pdf;";
$messaggio .= " name=comunicato_numero_".$_POST['id_mod'].".pdf\n";
$messaggio .= "Content-Transfer-Encoding: base64\n";
$messaggio .= "Content-Disposition: attachment;";
$messaggio .= " filename=comunicato_numero_".$_POST['id_mod'].".pdf\n\n";
// leggiamo il file corrispondente all'immagine dal nostro server
// Apro e leggo il file allegato
$allegato ="../attivita/1/comunicati/".$_SESSION['id'].".pdf";
$file = fopen($allegato,'rb');
$data = fread($file, filesize($allegato));
fclose($file);
// Adatto il file al formato MIME base64 usando base64_encode
$data = chunk_split(base64_encode($data));
$messaggio .= $data . "\n";
// chiusura della sezione multipart/mixed
$messaggio .= "--$boundary2--\n";
// chiusura del messaggio con la stringa boundary
$messaggio .= "--$boundary--";