重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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("此邮箱是合法的!");
}
}
一般的验证是 验证邮件地址格式是否正确,如果你需要验证邮箱是否存在就需要发个邮件过去,即使发过去 你也不知道是否存在,除非有邮件返回。
所以一般只是验证邮件格式是否正确就可以了。
首先使用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点抗 ");
client.setSender("sxgkwei@163点抗 ");
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