ho provato a modificare la parte di invio

codice:
//Per iniviare la mail
        $oggetto = "Preghiere dei Fedeli del ".$data_completa."";
        $mittente = "preghieredeifedeli@mail.it"; // Mail mittente
        $mittente_nome  = "Parrocchia";
        
function getSizeFile($url) { 
if (substr($url,0,4)=='http') { 
$x = array_change_key_case(get_headers($url, 1),CASE_LOWER); 
if ( strcasecmp($x[0], 'HTTP/1.1 200 OK') != 0 ) { $x = $x['content-length'][1]; } 
else { $x = $x['content-length']; } 
} 
else { $x = @filesize($url); } 

return $x; 
} 
  	
  	$file = fopen($path_url,'rb');
  	$dimensione = getSizeFile($path_url);
  	$data = fread($file_caricato, $dimensione); 
	// Adatto il file al formato MIME base64 usando base64_encode
  	$data = chunk_split(base64_encode($data));
  	fclose($file_caricato); 

  
  // 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 = "From: $mittente_nome<$mittente>";
  $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-Type: {$allegato_type};\n";
  $msg .= " name=\"{$nome_file}\"\n"; 
  //$msg .= "Content-Disposition: attachment;\n";
  //$msg .= " filename=\"{$nome_file}\"\n";
  $msg .= "Content-Transfer-Encoding: base64\n\n";
  $msg .= $data . "\n\n";

  // chiudo con il separatore
  $msg .= "--{$mime_boundary}--\n";        
        
        
mail("prova@mail.com", $oggetto, $msg, $headers); //Mail di prova a me per vedere se tutto è andato bene !!
ora ottengo il file allegato, ma il contenuto è vuoto !!

dove sbaglio ?