Puedes usar una expresión regular para saber si la línea es un email e ir cogiéndolos en un buffer para, al final, volcarlo en el archivo de salida:
Suponiendo que la entrada es fichero.txt, algo así te funcionaría:
Código PHP:
<?
$Lineas = file("fichero.txt");
$Mails = "";
reset($Lineas);
while (next($Lineas)) {
if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", trim(current($Lineas))))
$Mails .= current($Lineas)."\n";
}
$gestor = fopen("mails.txt", 'w'); // mails.txt contendrá la salida con los mails.
fwrite($gestor, $Mails);
fclose ($gestor);
?>
La expresión regular la tengo sacada de un ejemplo pero no es la más correcta de todas, porque no valida bien algunos mails complejos. Pero la idea es ésta.