首先使用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
import org.apache.log4j.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo {
public static void main(String[] args) {
if(Resource.isEmail("1212@ss.cn")){
System.out.println("1212@ss.cn这个邮箱是合法的!");
}else{
System.out.println("1212@ss.cn这个邮箱是非法的!");
}
}
}
class Resource {
private static final Logger logger = Logger.getLogger(Resource.class);
public static boolean isEmail(String email){
String str="^([a-zA-Z0-9]*[-_]?[a-zA-Z0-9]+)*@([a-zA-Z0-9]*[-_]?[a-zA-Z0-9]+)+[\\.][A-Za-z]{2,3}([\\.][A-Za-z]{2})?$";
Pattern p = Pattern.compile(str);
Matcher m = p.matcher(email);
logger.info(m.matches()+"---");
return m.matches();
}
}
这里要用到一个jar包,我用的是log4j-1.2.17.jar
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
}
}
正则表达式判断 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("邮箱格式正确"); }
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入你要验证的邮箱:");
String mail = sc.next();
//@出现的下标
int atIndex = 0;
//.出现的下标
int fullIndex = 0;
//第一次出现的下标
atIndex = mail.indexOf('@', 0);
//第一次出现的下标
fullIndex = mail.indexOf('.', 0);
//判断@是否出现.后面
if(atIndex = fullIndex) {
System.out.println("此邮箱不合法!");
System.exit(0);
}
//判断@是否只有一个
if(mail.indexOf('@', 0) != mail.lastIndexOf('@')) {
System.out.println("此邮箱不合法!");
System.exit(0);
}
//判断.是否只有一个
if(mail.indexOf('.', 0) != mail.lastIndexOf('.')) {
System.out.println("此邮箱不合法!");
System.exit(0);
}
//判断@前面是否是1到40个字符
if(!(atIndex = 1 atIndex = 40)) {
System.out.println("此邮箱不合法!");
System.exit(0);
}
//判断@前面是否为字母
for (int i = 0; i atIndex; i++) {
if (!((mail.charAt(i) = 'a' mail.charAt(i) = 'z')||(mail.charAt(i) = 'A' mail.charAt(i) = 'Z'))) {
System.out.println("此邮箱不合法!");
System.exit(0);
}
}
//判断@到.是否为只能是1到40个字符
if(!(fullIndex - atIndex - 1 = 1 fullIndex - atIndex - 1 = 40)) {
System.out.println("此邮箱不合法!");
System.exit(0);
}
//判断@到.直接的是否为字母或数字
for (int i = atIndex+1; i fullIndex; i++) {
if (!((mail.charAt(i) = 'a' mail.charAt(i) = 'z')||(mail.charAt(i) = 'A' mail.charAt(i) = 'Z')||(mail.charAt(i)='0'mail.charAt(i)='9'))) {
System.out.println("此邮箱不合法!");
System.exit(0);
}
}
//判断.后面的是2到3长度的字符
if (!(mail.length() - fullIndex - 1 = 2 mail.length() - fullIndex -1 = 3) ){
System.out.println("此邮箱不合法!");
System.exit(0);
}
//判断.后面的是英文字母
for (int i = fullIndex+1; i mail.length(); i++) {
if (!((mail.charAt(i) = 'a' mail.charAt(i) = 'z')||(mail.charAt(i) = 'A' mail.charAt(i) = 'Z'))) {
System.out.println("此邮箱不合法!");
System.exit(0);
}
}
System.out.println("此邮箱是合法的!");
}
}
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款