Sto impazzendo...
dopo svariate ricerche e milioni di prove per fare partire un email con allegao da una form questo è il risultato:
L'email arriva con tutto...ma senza allegato...il codice, girando nel web e sul presente sito, nn sembra presentare errori...qualcuno mi può aiutare a capire dove sbaglio? graziecodice:<?php $to="daniel.ferrarini@gmail.com"; $subject="p4f formMail"; $body = "prova messaggio"; $tmp_name = $_FILES['Filedata']['tmp_name']; $type = $_FILES['Filedata']['type']; $name = $_FILES['Filedata']['name']; $body .= "nnIn allegato il file: $nome"; $file = fopen($address,'rb'); $data = fread($file,filesize($address)); 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: {$type};\n" . " name=\"{$name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data .= "\n\n–{$mime_boundary}–\n"; // ora posso inviare la mail normalmente $ok = @mail($to, $subject, $testo_email, $headers); if($ok) { echo "La mail è stata inviata con successo!"; } else { die("Errore: la mail non può essere spedita."); } ?>
edit: scusate..piccola correzione al codice dove c'e $address ho messo $tmp_name ma cmq non arriva l'allegato, vorrei anke puntualizzare che se prendo il percorso del file in fase di up (che trovo in tmp_name) e lo sposto in una cartella mi copia li il file, quindi esso viene caricato perfettamente ma non riportato come allegato alla mail.

...
Rispondi quotando