「邮箱判断Java」如何判断邮箱

博主:adminadmin 2022-12-15 09:54:06 65

今天给各位分享邮箱判断Java的知识,其中也会对如何判断邮箱进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java如何验证一个email地址是否真实有效。

首先使用java提供的格式类判断email是否格式有误,然后使用开源框架,验证邮箱是否有用,示例如下:

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

如何用JAVA语句判断邮箱的正确格式

package com.test;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class StringTest {

public static void main(String[] args) {

Pattern p = Pattern.compile("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\\.([a-zA-Z0-9_-])+)+$");

Matcher m = p.matcher("wangxu198709@gmail.com");

//Mather m = p.matcher("wangxu198709@gmail.com.cn");这种也是可以的!

boolean b = m.matches();

System.out.print(b);//true

}

}

如何用java检验电子邮箱格式的合法性?要用到String的方法来判断

自己写逻辑验证的方式可以做到。我写了下面的:

public static boolean validateEmail(String email) {

boolean flag = false;

int pos = email.indexOf("@");

if (pos == -1 || pos == 0 || pos == email.length() - 1) {

return false;

}

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

if (strings.length != 2) {// 如果邮箱不是xxx@xxx格式

return false;

}

CharSequence cs = strings[0];

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

char c = cs.charAt(i);

if (!Character.isLetter(c) !Character.isDigit(c)) {

return false;

}

}

pos = strings[1].indexOf(".");// 如果@后面没有.,则是错误的邮箱。

if (pos == -1 || pos == 0 || pos == email.length() - 1) {

return false;

}

strings = strings[1].split(".");

for (int j = 0; j strings.length; j++) {

cs = strings[j];

if (cs.length() == 0) {

return false;

}

for (int i = 0; i cs.length(); i++) {//如果保护不规则的字符,表示错误

char c = cs.charAt(i);

if (!Character.isLetter(c) !Character.isDigit(c)) {

return false;

}

}

}

return true;

}

这个效率也不会差很多,不过我推荐matches方法,经过测试的,matches匹配方式运行10000次的时间比上面的时间少了20毫秒。

关于邮箱判断Java和如何判断邮箱的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-15,除非注明,否则均为首码项目网原创文章,转载请注明出处。