您的位置:首页 > 编程语言 > Java开发

java对email邮箱的真实、有效性验证

2016-11-18 12:59 483 查看


三种验证邮箱有效性的方式:

方式1:

public static boolean checkEmail(String email) {

if (!email.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+")) {

return false;

}

String host = "";

String hostName = email.split("@")[1];

Record[] result = null;

SMTPClient client = new SMTPClient();

try {

// 查找MX记录

Lookup lookup = new Lookup(hostName, Type.MX);

lookup.run();

if (lookup.getResult() != Lookup.SUCCESSFUL) {

return false;

} else {

result = lookup.getAnswers();

}

// 连接到邮箱服务器

for (int i = 0; i < result.length; i++) {

host = result[i].getAdditionalName().toString();

client.connect(host);

if (!SMTPReply.isPositiveCompletion(client.getReplyCode())) {

client.disconnect();

continue;

} else {

break;

}

}

//以下2项自己填写快速的,有效的邮箱

client.login("163.com");

client.setSender("sxgkwei@163.com");

client.addRecipient(email);

if (250 == client.getReplyCode()) {

return true;

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

client.disconnect();

} catch (IOException e) {

}

}

return false;

}

此方式需要的jar支持:commons-net-2.2.jar,dnsjava-2.1.1.jar

方式2:

public static boolean checkEmail(String email) throws Exception {

if (!email.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+")) {

return false;

}

IsEMailResult result = IsEMail.is_email_verbose(email, true);

switch (result.getState()) {

case OK:

return true;

default:

return false;

}

}

此方式需要的jar支持:IsEMail.jar

方式3:直接去邮箱验证网站去做验证。国外比较好的验证邮箱网站:http://verify-email.org/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: