Per inviare mail con allegato, ti consiglio di utilizzare PHPMailer o SWIFTMailer

Il file da allegare cmq dovrà risiedere sul server, quindi prima di inviarlo dovrai caricarlo tramite move_upload_file

Per il tipo di file, fai un controllo sull'estensione, explodendo il nome del file, e prendendo l'ultima stringa dopo l'ultimo punto