(Проголосовал за несколько других ответов - согласитесь, что проверка электронной почты пользователя, вероятно, лучше, - но хотел также внести эту упрощенную версию проверки DNS, которую описал Анри. Ссылка, которую он разместил, требует другой библиотеки, но вы можете по крайней мере базовые проверки без него.)
Вот основная проверка домена:
public boolean isValidDomain(String domainName)
{
try
{
InetAddress.getByName(domainName);
return true;
}
catch (UnknownHostException e)
{
return false;
}
}
А вот базовая проверка DNS-записи MX:
public boolean isValidEmailDomain(String domainName)
{
try
{
DirContext ictx = new InitialDirContext();
Attributes attrs = ictx.getAttributes("dns://" + dnsServer + "/" + domainName,
new String[] { "MX" });
Attribute attr = attrs.get("MX");
return (attr != null);
}
catch (NamingException e)
{
return false;
}
}
Где dnsServer
необязательно использовать в некоторых средах, но должно быть в других . Возможно, вам придется поэкспериментировать там.
(Все упоминаемые классы находятся в java.net
или javax.naming
.)