Codice PHP:
$allegato_tmp $_FILES['allegato']['tmp_name']; //spiegatemi questo passaggio 
Quando un file viene uppato sul server viene messo nella cartella prestabilita per i file temporaneri in $_FILESS['nome']['tmp_name'] ci sta il nome del tuo file dentro la cartella temporanea

Codice PHP:
$allegato $_FILES['allegato']['name']; //spiegatemi questo passaggio 
Qui ricavi il nome originale del file. es. car.jpg, programma.zip,...

Codice PHP:
 move_uploaded_file($allegato_tmp"./tmp/".$allegato); //spiegatemi questo passaggio 
Questa funzione sposta il file uppato dalla cartella temporanea predefinita di php alla cartella ./tmp/nome_originale_file.estensione

Codice PHP:
$mime_allegato mime_content_type("./tmp/".$allegato); //spiegatemi questo passaggio 
Questa funzione ricava il mime-type di un file che serve poi in seguito negli header della mail per fare capire di che tipo di allegato si tratta. Tale funzione funziona solo se l'estensione magic.mime è attiva. Per l'utlizzo che fai tu cmq ti consiglio di modificare così che ti risparmi di usare questa funzione:
$mime_allegato = $_FILES['allegato']['type'];

Codice PHP:
$boundary md5(uniqid(microtime())); //spiegatemi questo passaggio 
Crei una stringa alfanumerica lunga 32 bite che serve come separatore per le varie parti della mail

Codice PHP:
$intestazioni_corpo "--$boundary\n"//spiegatemi questo passaggio 
Gli header della mai prevedono un certo tipo di raggruppamente e tale raggruppamento deve essere fatta separando i gruppi con una stringa specificata nella riga: "Content-type: multipart/mixed;\n boundary=\"$boundary\"\n";
tale stringa deve rimanere la stessa per tutte le sezioni della mail