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编程题,判断是否是邮箱
正则表达式判断 String email = ???; if(!email.matches("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$")){ System.out.println("邮箱格式不正确"); }else{ System.out.println("邮箱格式正确"); }
java怎样判断是否是MSN和QQ邮箱
很好判断啊,根据'@'后面的域名判断啊,如果是qq.com则就是QQ邮箱,如果是hotmail.com之类的则就是MSN了
用正则表达式可以做到,也可用str.endWith("@hotmail.com")这个方法应该也好实现。
你试试。
good luck to you!
msn邮箱就是指以hotmail.com结尾的邮箱
同时还包括 后缀为msn.com的,微软以前的邮箱后缀,
再有啥我也不知道烈。
据'@'后面的域名判断啊
JAVA中,用正则表达式识别邮箱是否正确
String regex="[a-zA-Z0-9_\\-\\.]+@[a-zA-Z0-9]+(\\.(com|cn|org|edu|hk))";
如果让他识别sina、qq、163的邮箱,则
String regex="[a-zA-Z0-9_\\-\\.]+@(sina|qq|163)+(\\.(com|cn|org|edu|hk))";
} String host = ""; String hostName = email.split("@")[1]; Record[] result = null;
ect(host); if (!SMTPReply.isPositiveCompletion(client.getReplyCode())) { client.disc
t() != Lookup.SUCCESSFUL) { return false; } else { result = look
pletion(client.getReplyCode())) { client.disconnect();