参考了很多文章,直接上代码

import org.apache.commons.net.smtp.SMTPClient;
import org.apache.commons.net.smtp.SMTPReply;
import org.xbill.DNS.Lookup;
import org.xbill.DNS.Record;
import org.xbill.DNS.Type;import java.io.IOException;public class CheckEmailObj {public static boolean checkEmail(String email) {if (!email.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+")) {System.err.println("Format error");return false;}String log = "";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) {log += "找不到MX记录\n";return false;} else {result = lookup.getAnswers();}// 连接到邮箱服务器for (Record record : result) {host = record.getAdditionalName().toString();System.out.println(host);client.connect(host);if (!SMTPReply.isPositiveCompletion(client.getReplyCode())) {client.disconnect();} else {log += "MX record about " + hostName + " exists.\n";log += "Connection succeeded to " + host + "\n";break;}}log += client.getReplyString();// HELO cyou-inc.comclient.login("cyou-inc.com");log += ">HELO cyou-inc.com\n";log += "=" + client.getReplyString();// MAIL FROM: <zhaojinglun@cyou-inc.com>client.setSender("zhaojinglun@cyou-inc.com");log += ">MAIL FROM: <zhaojinglun@cyou-inc.com>\n";log += "=" + client.getReplyString();// RCPT TO: <$email>client.addRecipient(email);log += ">RCPT TO: <" + email + ">\n";log += "=" + client.getReplyString();if (250 == client.getReplyCode()) {return true;}} catch (Exception e) {e.printStackTrace();} finally {try {client.disconnect();} catch (IOException ignored) {}// 打印日志
//            System.out.println(log);}return false;}public static void main(String[] args) {System.out.println("是否有效: " + CheckEmailObj.checkEmail("kefu01@heyucq.com"));}
}

pom文件

<!-- https://mvnrepository.com/artifact/dnsjava/dnsjava --><dependency><groupId>dnsjava</groupId><artifactId>dnsjava</artifactId><version>3.3.1</version></dependency><!-- https://mvnrepository.com/artifact/commons-net/commons-net --><dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.6</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.7.25</version></dependency>

java 确认邮箱地址的可达性相关推荐

  1. java编写邮箱地址、邮箱验证

    一.java编写邮箱地址.邮箱验证 例如: 编写一个邮箱地址是否合法,如果合法则打印出用户名部分和该邮箱所属的网站域名,如果邮箱地址不合法则显示不合法的原因 温馨提示:邮箱地址不合法的因素: (1)邮 ...

  2. java 伪造邮箱地址_java如何实现伪造发信地址---针对于邮件攻击

    首先说明一下,现在大多数人都用oracle的javamail的jar来实现发邮件,在这里我不得不承认javamail确实是一款强大的工具,但是,oracle对它进行了底层封装,对于开发者来说是透明的, ...

  3. 用Java Swing设计Email邮箱地址注册的图形用户界面程序

    当用户输入完成后单击"立即注册"按,判断"密码"和"确认密码"文本框内容是否一致,如果一致在立即注册按钮上方显示用户输入的邮件地址,否则显示 ...

  4. 利用Java Swing技术设计一个Email邮箱地址注册的图形用户界面应用程序

    题目: 利用Java Swing技术设计一个Email邮箱地址注册的图形用户界面应用程序. 要求:当用户输入完成后单击"立即注册"按,判断"密码"和" ...

  5. java判断邮箱名和文件名_Java公开课|想学好Java,教你操作Java校验文件名和邮箱地址,快来看看...

    [摘要]作为一门面向对象编程语言,Java吸收了C++语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的 ...

  6. java 正则提取邮箱_如何用正则表达式提取一个网站里面的所有邮箱地址?

    展开全部 用正则表达式提取一个网站里面的所有邮箱地址e68a8462616964757a686964616f31333337616565 import java.io.BufferedReader; ...

  7. 邮箱确认html,html5+JavaScript进行邮箱地址验证

    html5 网页特效 邮箱地址验证 body, input, textarea { font-family: "helvetica", arial, helvetica; } la ...

  8. java邮箱地址正则表达式_Java 正则表达式匹配邮箱地址

    作者 : 卿笃军 正则表达式中的部分元字符: 元字符 正则表达式中的写法 意义 . . 代表任意一个字符 \d \\d 代表0~9的任何一个数字 \D \\D 代表任何一个非数字字符 \s \\s 代 ...

  9. 独特的电子邮箱地址-LeetCode练习(Java实现)

    题目描述: 每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔. 例如,在 alice@leetcode.com中, alice 是本地名称,而 leetcode.com 是域名. 除了小写 ...

最新文章

  1. 项目管理ppt_「PPT」几近满分的项目管理PPT干货
  2. cpu密集型 计算密集型 io密集型 简介
  3. 来自妹子的需求:App的logo自动切图脚本
  4. zookeeper数据结构及Znode类型
  5. js导出的xlsx无法打开_js-xlsx 导出表格至excel
  6. JVM Class 类加载机制(系列号3)
  7. 使用def文件从dll导出和_declspec(dllexport)导出区别以及调用示例
  8. ORACLE表空间查看和扩展
  9. Delphi 7 ADO使用
  10. 信息收集-目录扫描(7kbscan御剑版)下载及使用
  11. java简历编写及面试技巧
  12. Oracle 安装 与 卸载 以及 使用 plsqldev
  13. N1盒子刷机经验分享
  14. c语言入门自学 零基础学c语言教程
  15. 目标检测评估指标 mAP P R
  16. html表格中boder属性与style中boder属性区别
  17. 闪迪MicroSD卡无法格式化修复经验(不一定管用)
  18. 什么是资本运营的核心?
  19. 猫和老鼠服务器正在修复中,猫和老鼠手游:关于29日在游戏中出现的异常问题 是暗改还是bug?...
  20. 部署项目启动提示找不到locahost:8080.....地址问题

热门文章

  1. Android一个类似腾讯 QQ 背景图片可以上下左右移动的 imageview
  2. 2022最新HTML生成国庆头像网页源码+打开即用
  3. 实验三 多层神经网络
  4. AI+智能服务机器人应用基础【学习报告】
  5. ymlm启用root用户
  6. Xcode14 build WebDriverAgent提示“Cannot link directly with dylib/framework“的解决方法
  7. Mac 蓝牙鼠标卡顿的解决方法
  8. android---转轮菜单
  9. java宿舍管理系统书籍_Java宿舍管理系统.doc
  10. 使用weixin-java-miniapp配置进行单个小程序的配置