java判断邮箱是否存在.有返回值

有时候需要判断该邮箱是否存在.


public static boolean checkEmail(String email) { 

if (!email.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+")) { 
return false; 

String log = ""; 
String host = ""; 
String hostName = email.split("@")[1];// 去掉@后面的 
System.out.println("hostName:" + hostName); 
Record[] result = null; 
SMTPClient client = new SMTPClient(); 
try { 
// 查找MX记录 
Lookup lookup = new Lookup(hostName, Type.MX); 
lookup.run(); 
if (lookup.getResult() != Lookup.SUCCESSFUL) { 
System.out.println("找不到MX记录"); 
return false; 
} else { 
result = lookup.getAnswers(); 
for (int i = 0; i < result.length; i++) { 
System.out 
.println(result[i].getAdditionalName().toString()); 
System.out.println(result[i]); 


// 连接到邮箱服务器 
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 { 
log += "邮箱mx记录" + hostName + "存在"; 
log += "成功连接到" + host; 
break; 


System.out.println(client.getReplyString()); 
client.login("163.com"); 
System.out.println(client.getReplyString()); 
client.setSender("634140729@qq.com");// 发件人 
log += "=" + client.getReplyString(); 
client.addRecipient(email); 
log += ">RCPT TO: <" + email + ">\n"; 
log += "=" + client.getReplyString(); 
if (250 == client.getReplyCode()) { 
return true; 

} catch (Exception e) { 
e.printStackTrace(); 
LOG.error(e.getMessage()); 
} finally { 
try { 
client.disconnect(); 
} catch (IOException e) { 
} // 打印日志 

return false; 




如果是250的话这个邮箱地址就存在,返回一个true. 
不存在则返回false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值