返回 登录
0

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

学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!

图片描述

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

方式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/

学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!

评论