Вы можете использовать это:
return array_filter(array_map('trim', $emails), function ($email) {
return (filter_var($email, FILTER_VALIDATE_EMAIL))
? true
: false;
});
Но как писал @ Гордон
Обратите внимание, что me_the.foo и mary@had.a.little.la.mb оба считаются действительными filter_var, потому что он будет проверять только синтаксис, а не семантику.
Итак, вы можете проверить синтаксис, но вы должны сделать некоторую проверку валидатора для этого. Например. Zend2 / Symfony2 или Laravel Validators?
* Вы также можете проверить домен: email
list($name, $emailDomain) = explode('@', $email);
unset($name);
if (!checkdnsrr($emailDomain, 'MX')) {
return false;
}