Regex для проверки test@test.com.com.com

Как я могу проверить следующие неправильные адреса электронной почты с помощью регулярного выражения в C#?

например:

test@test.com.net.com

или же

test@test.net.net.org

Они проверяются как правильные адреса электронной почты. Какие-нибудь мысли? Спасибо

3 ответа

Решение

Хотя оба test@test.com.net.com а также test@test.net.net.org с синтаксической точки зрения действительны, их доменные части не указывают на существующие домены. Для этого вида теста вы можете извлечь часть домена, которая вас интересует, и запросить DNS (см. RFC 2821 и RFC 2822), чтобы узнать, существует ли она.

Поскольку вы используете.NET, кстати, я бы посоветовал вам взглянуть на нашу EmailVerify.NET, ведущую библиотеку для проверки электронной почты, которая может проверять синтаксис (в соответствии с последними стандартами IETF), доменные части и наличие почтового ящика для ваших адресов электронной почты.

Вы можете просто использовать что-то вроде:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

Список, пожалуйста, смотрите на этой странице.

Пожалуйста, рассмотрите это регулярное выражение:

([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})

Он будет соответствовать всем адресам электронной почты, если он не совпадает с адресом электронной почты, адрес электронной почты не в правильном формате, надеюсь, это поможет:)

Другие вопросы по тегам