ciao , sto cercando di creare una specie di mail-list che pesca gi indirizzi da un database.
Le mail le invia , ma deve esserci un errore sulla codifica .

su gmail viene inviato il messaggio correttamente ma l'allegato non ha nome (il meno) e non ha consistenza; ossia viene visualizzato ma non si riesce ne a leggere ne a scaricare.

su hotmail viene stampato (penso) l'allegato codificato e non viene visualizzato il file .

lo script lo riadattato alle mie esigenze , ma non caisco dove possa essere l'errore!

Codice PHP:
<?php
include 'connect.php';
$mittente $_POST['mittente'];
$oggetto $_POST['oggetto'];
$messaggio $_POST['messaggio'];

$allegato $_FILES['allegato']['tmp_name'];
$allegato_type $_FILES['allegato']['type'];
$allegato_name $_FILES['allegato']['name'];

$headers "From: " $mittente;
$msg="";
 if (!
$connesso){
        die (
"errore nella connessione al database\n -----> " .mysql_error());
    }
    if (
is_uploaded_file($allegato)){
   
//apro e leggo l'allegato
   
$file fopen($allegato"rb");
   
$data fread($filefilesize($allegato));
   
fclose($file);

   
//adatto il file al firmato MINE base64 usando base64_encode
$data chunk_split(base64_encode($data));

//genero il separatore , serve per dividere le parti testuali all'allegato
$semi_rand md5(time());
$mine_boundary "==Multipart_Boundary_x{$semi_rand}x";

//aggiungo le intestazioni necessarie per l'allegato
$headers .= "\nMINE-version: 1.0\n";
$headers .= "Content-Type: multipart/mixed;\n";
$headers .= "boundary=\"{$mine_boundary}\"";

//definisco il tipo di messaggio (MINE-multi-part)
$msg .=  "THIS IS A NEW MESSAGE \n\n";

//mettiamo il separatore al messaggio
$msg .= "--{$mine_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 sepaaratore
$msg .= "--{$mine_boundary}\n";
//aggiungo l'allegato alla mail

$msg .= "Content-Disposition: attachment;\n";
$msg .= " filename=\"{$allegato_name}\"\n";
$msg .= "Content-Transfert-Encoding: base64\n\n";
$msg .= $data "\n\n";
//chiudo con il separatore
$msg .= "--{$mine_boundary}--\n";
}else{
    
$msg .= $messaggio;
}
$sql "SELECT email_add FROM mail_list;";
    
$query mysql_db_query($db_nome$sql);
    while(
$row mysql_fetch_assoc($query)){
        
$destinatario $row['email_add'];
$invio mail($destinatario$oggetto$msg $headers);
    }
//invio della mail vera e propria
if ($invio){
    echo 
"email inviata";
}else{
    echo 
"errore nell'invio della mail";
}

?>
inserisco il codice per miglior comprensione.

Grazie anticipatamente dellaiuto..