(投票赞成其他几个答案 - 同意用户电子邮件验证可能是最好的 - 但也想贡献 Henri 描述的这个简单版本的 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;
}
}
WherednsServer
不必在某些环境中使用,但必须在其他环境中使用。您可能需要在那里进行实验。
(所有引用的类都在java.net
或中javax.naming
。)