Salve a tutti,
sto utilizzando uno script per farmi spedire email con allegati (es. documenti Word) da un form di una pagina web.

L'email arriva correttamente e se la apro con Outlook o Outlook express è tutto ok...

Se invece tento di aprirla con un servizio webmail tipo Tiscali, ho dei problemi con l'allegato:

- il nome dell'allegato sparisce
- al suo posto c'è un attachment generico di tipo testo col nome di "ATT0.txt" e se ci clicco sopra ottengo una videata di segni incomprensibili...(credo sia la decodifica base64).

Qualcuno sa spiegarmi il motivo ed eventualmente darmi una mano?!? Grazie!!!

Questo è lo script:

Codice PHP:
<?
/****************************FUNCTION SENDMAIL**********************************/
/** esempio utilizzo:
             $destinatario = "info@overjeans.it";
             $mittente = "Mario Rossi <mariorossi@tiscali.it>";
             $oggetto = "Soggetto del messaggio";
             $messaggio = "Questo è un messaggio di prova!\n";
             
             include('sendmail.php');
             
             $esito=mail($destinatario, $oggetto, $msg, $headers);
**/
                      // Valorizzo le variabili relative all'allegato
                      
$allegato $_FILES['allegato']['tmp_name'];
                      
$allegato_type $_FILES['allegato']['type'];
                      
$allegato_name $_FILES['allegato']['name'];

                      
// Creo 2 variabili che riempirò più avanti...
                      
$headers "From: " $mittente;
                      
$msg "";

                      
// Verifico se il file è stato caricato correttamente via HTTP
                      // In caso affermativo proseguo nel lavoro...
                      
if (is_uploaded_file($allegato))
                      {
                        
// Apro e leggo il file allegato
                          
$file fopen($allegato,'rb');
                          
$data fread($filefilesize($allegato));
                          
fclose($file);

                        
// Adatto il file al formato MIME base64 usando base64_encode
                          
$data chunk_split(base64_encode($data));

                        
// Genero il "separatore"
                        // Serve per dividere, appunto, le varie parti del messaggio.
                        // Nel nostro caso separerà la parte testuale dall'allegato
                          
$semi_rand md5(time());
                          
$mime_boundary "==Multipart_Boundary_x{$semi_rand}x";

                        
// Aggiungo le intestazioni necessarie per l'allegato
                          
$headers .= "\nMIME-Version: 1.0\n";
                          
$headers .= "Content-Type: multipart/mixed;\n";
                          
$headers .= " boundary=\"{$mime_boundary}\"";

                        
// Definisco il tipo di messaggio (MIME/multi-part)
                          
$msg .= "This is a multi-part message in MIME format.\n\n";

                        
// Metto il separatore
                          
$msg .= "--{$mime_boundary}\n";

                        
// Questa è la parte "testuale" del messaggio
                          
$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
                          
$msg .= "Content-Transfer-Encoding: 7bit\n\n";
                          
$msg .= $messaggio "\n\n";

                        
// Metto il separatore
                          
$msg .= "--{$mime_boundary}\n";

                        
// Aggiungo l'allegato al messaggio
                          
$msg .= "Content-Disposition: attachment;\n";
                          
$msg .= " filename=\"{$allegato_name}\"\n";
                          
$msg .= "Content-Transfer-Encoding: base64\n\n";
                          
$msg .= $data "\n\n";

                        
// chiudo con il separatore
                          
$msg .= "--{$mime_boundary}--\n";
                      }
       
/**************************** FINE FUNCTION SENDMAIL*****************************************/
?>