Это немного зависит от того, что действительно означает для вас.Для меня адрес электронной почты может быть действительным (то есть, он сформирован правильно в соответствии с RFC 5322), но я не могу отправить его.Нужно ли вам проверять a) формат адреса или b) способность отправлять на него электронную почту, зависит от приложения.
Если вы просто хотите убедиться, что адрес электронной почты пользователя имеет правильный формат,Вы застряли с проверкой по регулярному выражению.Удачи с этим.См. RFC 3696 , «3. Ограничения для адресов электронной почты» для получения удручающих подробностей.
Вверху моей головы, вот некоторые ориентиры, которые я использовал в прошлом дляпомочь моим клиентам принять решение о проверке электронной почты.
- Пользователь хочет получить от нас письмо;Предположим, что пользователь заинтересован в исправлении ошибок.(Примите что-нибудь с символом «@» и «.» Примерно в правильном месте.)
- Есть проблемы с конфиденциальностью;отправить электронное письмо на адрес пользователя и потребовать от пользователя щелкнуть ссылку для подтверждения.(Вы все еще можете принять что-либо с символом «@» и «.» Примерно в правильном месте. Требуется сотрудничество между базой данных и разработкой веб-приложения.)
- Вовлечены локальные политики.Ограничьте адреса электронной почты этим произвольным подмножеством действительно действительных адресов электронной почты.(Я видел это, когда одна компания выкупает другую компанию и требует, чтобы всем был присвоен новый адрес электронной почты, прежде чем эти учетные записи электронной почты будут фактически созданы.)
В зависимости от того, каким путем вы идете, выВам понадобится более свободное или более жесткое регулярное выражение.По моему опыту, большую часть времени большинство людей идут с более слабой проверкой.