Как сказал Марк Байерс, filter_var действительно проверяет все, что строго, допустимо, и я считаю это хорошей вещью. Например, с Gmail:
Ваш адрес электронной почты - что-то@gmail.com. Вы хотите зарегистрироваться на сайте x.com. Вы не полностью доверяете веб-сайту, и вы регистрируетесь по электронной почте на адрес что-то + x@gmail.com. Gmail автоматически перенаправляет его на ваш почтовый ящик. Поэтому, если этот ненадежный веб-сайт продает кому-либо адрес вашей электронной почты и вы получаете электронное письмо, адресованное по адресу что-то+x@gmail.com, вы знаете, кто передал ваш адрес электронной почты!
Вы можете не думать о таких вещах, когда пишете свое регулярное выражение, и это может стать очень раздражающим для людей (таких как я!), Которые используют этот синтаксис. Я всегда использую filter_validate (). Таким образом, я знаю, что действительный адрес электронной почты всегда будет подтвержден.
В любом случае, давайте будем честными: используете ли вы собственный regexp или filter_validate, я все равно могу написать поддельный адрес электронной почты, который будет проверен. Вы также можете принять что угодно и отправить электронное письмо «Активировать свою учетную запись», чтобы пользователь мог получать и читать электронные письма с вашего веб-сайта.