Salve, sto cercando di inviare un immagine in allegato via email con il seguente script
Codice PHP:
<?php
$fileDaInviare = "ciao.jpeg"; // path del file da inviare
$tipoFile ="image/jpeg"; // il MIME type del file
$nuovoNome ="immagine.jpg"; // il nuovo nome che verrà utilizzato per il file allegato
$mittente ="domenico@lib.it"; // il mittente della mail
$oggetto ="ciao"; // l’oggetto della mail
$testo_email ="ciao"; // messaggio della mail
$destinatario ="ioo@libero.it"; // il destinatario della mail
/* da qui inizia il setup della mail : */
$headers ="From:".$mittente."\r\n"; //imposto il mittente
$file = fopen($fileDaInviare,'rb'); //leggo il file da allegare
$data = fread($file,filesize($fileDaInviare));
fclose($file);
$semi_rand = md5(time()); //imposto il MIME boundary per gli header (stringa unica)
$mime_boundary ="==Multipart_Boundary_x{$semi_rand}x";
// setto gli headers
$headers .="\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// setto la codifica della mail
$testo_email .="This is a multi-part message in MIME format.\n\n" .
"–{$mime_boundary}\n" .
"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$testo_email .="\n\n";
$data = chunk_split(base64_encode($data)); //codifico il file…
// …e lo allego alla mail
$testo_email .="–{$mime_boundary}\n" .
"Content-Type: {$tipoFile};\n" .
" name=\"{$nuovoNome}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data .="\n\n–{$mime_boundary}–\n";
// ora posso inviare la mail normalmente
$ok = @mail($destinatario, $oggetto, $testo_email, $headers);
if($ok) {
echo"La mail è stata inviata con successo!";
} else {
die("Errore: la mail non può essere spedita.");
}
}
?>
L email arriva a destinazione ma in allegato non compare nulla ,nel corpo della mail ricevuta compare il seguente testo
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="==Multipart_Boundary_xd40f7f931b2e105a86 c9827db69c2479x"
ciao
This is a multi-part message in MIME format.
==Multipart_Boundary_xd40f7f931b2e105a86c9827db69 c2479x
Content-Type:text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
ciao
==Multipart_Boundary_xd40f7f931b2e105a86c9827db69 c2479x
Content-Type: image/jpeg;
name="immagine.jpg"
Content-Transfer-Encoding: base64
/9j/4AAQSkZJRgABAgAAAQABAAD//gAEKgD/4gIcSUNDX1BST0ZJTEUAAQEAAAIMbGNtcwIQAABt
bnRyUkdCIFhZWiAH3AABABkAAwApADlhY3NwQVBQTAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAA
9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAApkZXNjAAAA/AAAAF5jcHJ0AAABXAAAAAt3dHB0AAABaAAAABRia3B0AAABfAA AABRyWFla
AAABkAAAABRnWFlaAAABpAAAABRiWFlaAAABuAAAABRyVFJDAA ABzAAAAEBnVFJDAAABzAAAAEBi
VFJDAAABzAAAAEBkZXNjAAAAAAAAAANjMgAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAA
cosa sbaglio ? Grazie