como dice el compañero ferbux, debe ocupar phpmailer.
yo lo ocupo bastante te adjunto mi codigo te aseguro que te servira, solo debes declarar la clase y pasar los parametros correctos.
lo que hace:
envia una imagen de fondo (no adjunta) y adjunta un archivo que se encuentra guardada en la carpera /tmp (linux) y además existe problemas con los espacios en blancos debes reemplazar un espacio en blanco por "\ " ej: "mi archivo.pdf" no llegara si lo lees haci por que solo busca el primer string (mi) en cambio si lo buscar por: "mi\ archivo.pdf" ahi si te funcionara y buscara el pdf con el nombre completo.
Código PHP:
function SendMail($nombre, $to, $from, $body, $subject, $username, $password, $smtp, $port){
$mail = new PHPMailer();
$mail->From = "[email protected]";
$mail->FromName = $nombre;
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Username = $username;
$mail->Password = $password;
$mail->Port = $port;
$mail->Host = $smtp;
$mail->AddReplyTo("","");
$mail->AddAddress($dest,"");
$mail->WordWrap = 50;
$mail->AddEmbeddedImage("./logo.jpg", "logo", "logo.jpg"); //Imagen embebida en el mensaje
$mail->IsHTML(true); // Activamos el formato HTML
$mail->Subject = $Asunto;
$mail->Body = "<img src='cid:logo' alt='Logo'><p>$Mensaje";
$mail->AltBody = "";
$adj = str_replace(" ","\ ",$file);
$archs = "/tmp/".$adj;
$mail->AddAttachment($archs,$archs);
if($mail->Send())
{
echo "Bien<br>";
}else{
echo "Mal<br>";
}
}
suerte.