`

验证邮件的有效性

    博客分类:
  • java
 
阅读更多


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

此方式优点:验证出的结果,完全符合真实情况,如果一个邮箱被验证存在,那么它就一定存在,反之亦然。

此方式缺点:验证时比较耗时,我自己检测,需要5秒左右的时耗;实际情况视你自己写的发件方而定。

核心代码:

public static boolean checkEmail(String email) throws DNSLookupException {
  if (!email.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+")) {
   return false;
  }
  IsEMailResult result = IsEMail.is_email_verbose(email, true);
  switch (result.getState()) {
  case OK:
   return true;
  default:
   return false;
  }
}

需要的jar支持:IsEMail.jar

此方式优点:验证时耗时短,我自己检测,几乎立刻就可以获得结果。

此方式缺点:验证出的结果,基本符合真实情况;此方式验证的只是邮箱表示的站点是否存在,至于邮箱是否真实存在则不一定。如***@gmail.com格式的邮箱,则全部验证存在,但实际情况则并非如此;但提供此种邮箱服务的google站点却的确真实存在。
分享到:
评论

相关推荐

    邮件 有效性验证 email

    标题中的“邮件有效性验证 email”指的是验证电子邮件地址真实性和有效性的过程。这通常涉及到通过编程方式检查一个电子邮件地址是否符合标准格式,是否可达到,以及是否确实存在。在这个场景中,我们看到几个相关的...

    邮箱地址有效性验证工具

    邮箱地址有效性验证是IT行业中一个重要的实用技巧,尤其是在大规模邮件营销、用户注册验证或数据分析时。"邮箱地址有效性验证工具"如"Super Email Verifier"就是为此目的设计的。这样的工具能够帮助用户确保他们持有...

    大批量邮箱有效性验证

    4. **邮件反馈验证**:有些高级的验证工具还会使用邮件反馈验证,发送一封包含随机代码的验证邮件到目标邮箱,如果用户收到并返回此代码,那么邮箱就被确认为有效。 在压缩包文件“大牙批量邮箱验证专家”中,我们...

    验证邮件地址有效性(是否是空邮件地址)

    下面,我们将详细讨论如何验证邮件地址的有效性,特别是针对“空邮件地址”的检查。 首先,我们需要理解一个邮件地址的基本结构。一个标准的电子邮件地址由两部分组成:用户名和域名,之间用@符号分隔。例如,...

    克瑞思邮件地址有效性验证地址 v1.01.zip

    克瑞思邮址验证器是一款邮件营销必备的辅助工具,具体功能是批量验证收信邮箱是否真实有效,批量清除那些无效的、不存在的、格式不正确的邮箱地址。 验 证期间不向被验证的邮箱发送任何信息,验证效率高,准验证...

    鑫河批量验证邮箱地址有效性工具 v5.11.25.5.zip

    鑫河批量验证邮箱地址有效性工具是由鑫河软件开发的专业好用的验证邮箱地址有效性工具。 鑫河软件的批量验证邮箱地址工具功能 一、本软件可以实现检查以下网络协议:SMTP、MIME、POP3、FTP、WhoIs、DNS、ICMP 和 ...

    验证Email smtp 有效性

    在IT行业中,验证电子邮件(Email)的SMTP有效性是一项基本任务,尤其在开发涉及邮件发送功能的应用时。SMTP(Simple Mail Transfer Protocol)是互联网标准,用于发送电子邮件。本篇将详细介绍如何利用C++和MFC...

    邮件验证v1.6

    2. **DNS解析**:通过DNS(域名系统)查询,验证邮件服务器是否存在。如果可以找到MX记录(邮件交换记录),说明这个邮件地址对应的邮件服务器是可以接收邮件的。 3. **SMTP连接**:软件可能会尝试与邮件服务器建立...

    C#邮箱验证注册账号有效性

    在C#编程中,电子邮件验证是一种常见的用户注册过程,用于确保用户提供的邮箱地址有效并真正属于他们。这个DEMO展示了如何使用C#语言通过发送激活邮件来验证注册用户的账号。以下是一些关于C#发送邮件验证的重要知识...

    批量验证邮件地址是否有效

    总结,批量验证邮件地址的有效性涉及正则表达式的使用、文件操作以及SMTP协议的应用。通过这些技术,我们可以高效地处理大量邮件地址,确保数据的质量和准确性。在实际操作中,还应注意隐私保护,避免非法获取和使用...

    注册后自动发送邮件,通过链接进行验证

    然后,服务器会检查该信息的有效性,如果验证成功,就会将用户的账户状态更新为“已验证”。 在这个过程中,安全性是至关重要的。为了防止中间人攻击或恶意篡改,链接应使用HTTPS协议进行传输,以保证数据的加密。...

    邮件地址真实性精准验证工具 v2.0(支持所有邮箱).rar

    万能邮箱真实性批量验证工具,Email邮箱地址通用验证工具是一款专门提供邮箱地址验证的软件,该软件无需安装即可使用,帮助你批量验证收信邮箱是否真实有效,该软件验证效率非常高、验证结果很准确、验证速度非常快...

    易邮件地址验证大师 V4.10.05

    在电子邮件营销中,确保邮件地址的准确性和有效性至关重要。易邮件地址验证大师通过以下方式实现这一目标: 1. **格式检查**:首先,软件会检查输入的邮件地址是否符合标准的电子邮件格式,如`username@example....

    php中Socket发送邮件验证邮箱的类.zip

    综上所述,"php中Socket发送邮件验证邮箱的类"是一个实用的工具,它结合了SMTP协议和Socket编程,可以有效地验证邮箱的真伪,为Web应用程序提供更准确的邮箱验证功能。使用这个类库,开发者可以轻松地集成到自己的...

    MOA有效性验证工具 MOA电子邮件有效性验证工具 v1.08

    MOA电子邮件有效性验证工具v1.08版本可能包含了一些更新和改进,例如提升验证速度、优化用户体验、增加对新邮件服务提供商的支持,或者修复了先前版本中发现的任何问题。 使用这个工具,用户可以批量导入包含大量...

    发送电子邮件验证代码

    以下是一个使用 JavaMail API 发送带有验证码的验证邮件的示例代码: ```java // 设置页面语言、内容类型和字符集编码 ;charset=gbk" pageEncoding="gbk"%&gt; 设置请求和响应的字符集编码 --%&gt; request.set...

    发送邮件时进行身份验证

    - 对于OAuth2.0,定期检查令牌的有效性,并处理令牌过期的情况。 - 定期更新库,以获得最新的安全补丁。 总结来说,发送邮件时进行身份验证是保障邮件发送安全的关键步骤。通过JavaMail API,我们可以选择适合的...

    asp.net+注册后自动发送邮件,通过链接进行验证

    5. **令牌验证**:当用户点击邮件中的链接时,服务器需要验证令牌的有效性。这通常涉及到检查数据库中是否存在对应的未验证用户,并将用户状态设置为已验证。开发者可以使用`AspNet.Identity`中的`UserManager`接口...

    C#验证邮件的正则表达式的代码

    本文将详细介绍如何在C#中使用正则表达式来验证电子邮件地址的格式,并进一步讨论如何通过网络连接来验证邮件服务器的实际存在性。 #### 正则表达式验证电子邮件地址 在给定的代码片段中,`isEmail` 方法使用了一...

    邮箱有效性验证 NaxEmail邮箱地址通用验证工具 v3.0.6

    在互联网时代,电子邮件作为重要的沟通工具,其有效性验证显得尤为重要。尤其是对于从事邮件营销的企业和个人来说,确保邮件地址的有效性能够提高邮件送达率,避免资源浪费,提升营销效果。NaxEmail邮箱地址通用验证...

Global site tag (gtag.js) - Google Analytics