import?java.util.Scanner;
創(chuàng)新互聯(lián)公司服務(wù)項目包括黎川網(wǎng)站建設(shè)、黎川網(wǎng)站制作、黎川網(wǎng)頁制作以及黎川網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,黎川網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到黎川省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
public?class?Test?{
public?static?void?main(String[]?args)?{
Scanner?sc?=?new?Scanner(System.in);
System.out.println("輸入你要驗證的郵箱:");
String?mail?=?sc.next();
//@出現(xiàn)的下標(biāo)
int?atIndex?=?0;
//.出現(xiàn)的下標(biāo)
int?fullIndex?=?0;
//第一次出現(xiàn)的下標(biāo)
atIndex?=?mail.indexOf('@',?0);
//第一次出現(xiàn)的下標(biāo)
fullIndex?=?mail.indexOf('.',?0);
//判斷@是否出現(xiàn).后面
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);
}
//判斷@到.直接的是否為字母或數(shù)字
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("此郵箱是合法的!");
}
}
一般的驗證是 驗證郵件地址格式是否正確,如果你需要驗證郵箱是否存在就需要發(fā)個郵件過去,即使發(fā)過去 你也不知道是否存在,除非有郵件返回。
所以一般只是驗證郵件格式是否正確就可以了。
首先使用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();
}
//?連接到郵箱服務(wù)器
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