Lo que necesitas simplemente es usar $_FILES según describe el manual oficial de PHP al respecto:
http://www.php.net/manual/en/features.file-upload.php
Ahí tienes por ejemplo $_FILES['tmp_name'] que define el nombre temporal de tu archivo al subirlo al servidor (como lo gestiona PHP) y desde ahí normalmente lo moveras (con move_uploaded_file()) a su destino definitivo para posteriormente si lo deseas tomarlo (desde el servidor ya) con $_FILES['name']
En resumen .. el archivo no se toma directamente del PC del usuario .. y lo procesas "al vuelo" según llega al servidor o desde ese PC .. Sino que se "sube" al servidor .. ahí queda y luego tu lo procesas. Lo único que todo esto lo haces secuencialmente por pasos uno detras de otro y te podría dar la impresión de que el archivo lo "tomastes" del PC del usuario pero no es así .. sino que se subió y de ahí (en el servidor) aplicastes un proceso (como el de enviarlo por e-mail). Conociendo esto, ahora ya sabras que si haces esto, el archivo te va a quedar en el servidor .. así que si no lo quieres ahí por qué lo enviastes por e-mail tendras que al terminar el proceso de envio del e-mail con ese archivo adjunto .. eliminarlo (con unlink()).
Un saludo,