No se porque dices que toma el texto que hay despues:
Código PHP:
<?php
$string = 'id 96AA286E1A0; Thu, 15 Jan 2009 22:18:58 +0100 (CET)
Received: from EMAILSERVER (*********************)
by linux*********** (Postfix) with ESMTP id 93DED827811
for <[email protected]>; Thu, 15 Jan 2009 22:18:57 +0100 (CET)';
preg_match_all("/<([a-zA-Z0-9._-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]{2,})>/", $string, $encontrados);
print_r($encontrados[1]);
?>
Salida:
Código PHP:
foreach($encontrados[1] as $correo) {
echo $correo."<br />\n";
}