Debes usar un buen montón de cabeceras HTTP (MIME) para tal fin (entre otras cosas como codificación de tu archivo y por supuesto "lectura" de tu archivo hacia una variable) ..
Pero .. para no volver a "reinventar la rueda" .. ya tenemos excelentes classes para tal fin (¬¬ no me llevo comisión por nombrarla xD.. pero hasta que vea algo mejor ..recomendaré esta):
PHP Mailer
http://phpmailer.sourceforge.net
Te permite enviar archivos adjuntos facilmente .. ademas de muchas más cosas como usar mail() de PHP, o SMTP (vários incluso a la vez para balancear la carga ..) .. e-mail en HTML y texto plano (incluso simultanemente para hacer dos versiones de tu e-mail ) ..permite usar imagenes "incrustadas" en tus e-mails HTML .. etc ..
Revisa sus tutoriales ..
Un saludo,