proba sacando la linea $cadena_final = str_replace(' ',',',$cadena);
y reemplazala por
$cadena_final = explode(" ",$cadena);
Donde $cadena_final va a ser un Array que va a contener los mails separados en cada indice,
ejemplo:
$cadena_final[0] ->
[email protected]
$cadena_final[1] ->
[email protected]
$cadena_final[2] ->
[email protected]
...
Con esto quiero verificar si los espacios en blanco fueron detectados por explode.
Es simplemente un testeo.