Начиная с версии php 5.2.0 появилась удобная встроенная функция filter_var. Больше не нужно вспоминать regexp — с помощью filter_var можно быстро проверить электронный адрес на наличие ошибок.
Вот такое выражение:
filter_var($email, FILTER_VALIDATE_EMAIL)
Вернет валидный электронный адрес, либо false — если $email не соответствует шаблону.
P.S.
С помощью filter_var еще можно проверить url (FILTER_VALIDATE_URL), ip (FILTER_VALIDATE_IP), а так же применить к строке разнообразные очищающие фильтры.