Удалить неверный формат электронной почты в PHP

Array ( [0] => myemail@domain.com [1] => mysecondemail@domain.com [2] => invalidEmail.com ) 

Обратите внимание, что значение третьего массива является недопустимым форматом электронной почты. Как удалить его с помощью / создания функции? Мне нужно иметь действительное письмо для того, чтобы implode("," the valid email) перед отправкой электронной почты с помощью функции mail() .

 <?php $len=count($array); for ($i=0;$i<$len;$i++) if (preg_match('^[a-z0-9!#$%&*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+(?:[az]{2,4}|museum|travel)$/i',$array[$i])) echo $array[$i]; ?> 
 $valid = array_filter($emails, create_function('$s', 'return filter_var($s, FILTER_VALIDATE_EMAIL);')); 

Или для PHP 5.3+:

 $valid = array_filter($emails, function ($s) { return filter_var($s, FILTER_VALIDATE_EMAIL); }); 

Основное решение прост и не требует регулярного выражения

  $isvalid = filter_var('myname@anydomain.com', FILTER_VALIDATE_EMAIL)); 

Но…

Однострочного решения просто не существует (с использованием регулярного выражения или чего-то еще).

Чтобы узнать больше о действительных адресах электронной почты, следуйте приведенным ниже ссылкам.

Рекомендации:

  • RFC 821: ПРОТОКОЛ ПРОСТЫХ ПОЧТОВЫХ ПЕРЕВОДОВ
  • RFC 822: СТАНДАРТ ДЛЯ ФОРМАТА СООБЩЕНИЙ ТЕКСТА ARPA INTERNET
  • RFC 1123: требования к интернет-хостам – приложение и поддержка
  • RFC 2142: ПОЧТОВЫЕ ИМЕНА ДЛЯ ОБЩИХ УСЛУГ, РОЛЕЙ И ФУНКЦИЙ
  • RFC 2821: простой протокол передачи почты (SMTP) – заменен на RFC 821
  • RFC 2822: Формат интернет-сообщений – заменен на RFC 822
  • RFC 3696: методы применения для проверки и преобразования имен
  • RFC 5233: фильтрация фильтров сит: расширение Subaddress
  • RFC 5321: простой протокол передачи почты (SMTP)
  • RFC 5322: формат интернет-сообщений
  • RFC 5335: Интернационализированные заголовки электронной почты

Вот некоторые примеры:

  • 甲 斐 @ 黒 川. 日本
  • Rδοκιμή @ παράδειγμα
  • Pelé@example.com
  • JSmith @ [192.168.2.1]
  • а \ @ хуг @ domain.com

Эти addreses не являются компиляторами стандарта RFC 5322 , но они все еще действительны.

Даже если вы подтвердите правильность некоторых адресов, ничто не может гарантировать, что ваш почтовый сервер их примет.