Возможный дубликат:
Как проверить адрес электронной почты в PHP
Мне было интересно, что все делают в отношении проверки адресов электронной почты и насколько обширна проверка.
Например, из тех методов, которые являются предпочтительными и почему?
Моя цель – найти хорошее и надежное решение для среднего проекта, поэтому, когда придет время проверить адрес электронной почты, я точно знаю, что я буду использовать.
Любая обратная связь очень ценится!
-Ryan
http://www.regular-expressions.info/email.html имеет рекомендованный RFC2822 рег.
Используйте встроенные фильтры PHP для синтаксической проверки и отправьте электронное письмо с подтверждением для подтверждения намерения.
Я не думаю, что есть надежное решение, кроме отправки электронной почты на этот адрес и запроса ответа. Регулярные выражения и тому подобное являются болью для правильной реализации.
Ваше решение будет зависеть от того, насколько ценен этот адрес электронной почты. Вы отправляете информационный бюллетень? Подтверждение продаж? Критическое предупреждение? Некоторое тривиальное регулярное выражение может быть достаточно для первого. Получение какого-то подтверждения было бы ценным для второго. Повторные подтверждения действительности (например, ежемесячные проверки) могут потребоваться для третьего.
Вот замечательная запись в блоге об этом: http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
Лично я обычно использую простой RegExp, который будет проверять большинство адресов, которые вы найдете в Интернете, поэтому решение в третьей ссылке – это то, что я буду использовать. Но лучшим решением является, я думаю, отправить электронное письмо на указанный адрес (используя простой RegExp перед тем, чтобы предупредить пользователя) со ссылкой для его проверки. Поэтому вы уверены, что это действительный и выделенный адрес.