Esto ha quedado así, lo pongo en un simple ejemplo para quien le interese.
  NOTA: ya se que es un chorro de expreión regular pero es la bomba porque no admite según que correos falsos o mal sentenciados.   Código PHP:
    $correo_destinatarios="hola, mi correo es [email protected], el de mi suegra [email protected] y el de mi gato [email protected] yata.";
 
$secuencia= "(([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*)))"; 
preg_match_all ($secuencia, $correo_destinatarios, $correo);
 
for($x=0;$x<count($correo[0]);$x++){
    $mail .= $correo[0][$x].", ";
}
 
echo $mail; 
       Si nos fijamos, en la variable 
$correo_destinatarios hay el texto mezclado junto con varios correos electrónicos. La variable 
$secuencia contiene la cadena de la expresión regular de un correo electrónico. En la variable  
$correo tenemos un array multidimensional y en la posición [0] tenemos un array con el resultado de las coincidencias de toda la expresión regular. 
Para verlo claro he puesto el for así a lo tonto, espero que de este modo quede mas claro.  
Suerte con vuestros proyectos.