今天给大家分享的内容是关于PHP怎么判断邮箱是否有效的方法代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

    /**
     * 验证邮件是否为有效邮件
     * $email 邮箱
     */
    public static function validate_email($email){
      $email = explode("@",$email);
      $email = array_pop($email);
      if(checkdnsrr($email,"MX")){
        return true;
      }else{
        return false;
      }
    }
}

实现思路:

1、把传递的邮箱使用explode根据@转换成数组。

2、使用array_pop去除掉最后面一个数组元素

3、使用checkdnsrr 检查指定网址的 DNS 记录是否存在,即可返回是否有效。


PHP下的checkdnsrr函数 -- 可以根据所给定的host name(域名)或者IP地址检查它是否有DNS各项记录(包括A记录、MX记录、NS记录、CNAME、PTR记录、AAAA记录、SRV记录、TXT记录、SOA记录等等),本函数用来检查 DNS 的字段纪录。指定的参数 host 可以是网络位址 (IP Address),也可以用机器名称 (Domain Name)。参数 type 可以省略,内定值为 MX。而参数 type 的值可为以下的其中之一:A、MX、NS、SOA、PTR、CNAME 或 ANY。若找到了指定网址的 DNS 字段,返回 true;若未找到指定的 DNS 字段或是有错误均会返回 false。这里不是返回实际的DNS记录值而是返回一个是否存在的状态。如果需要返回实际值需要用到dns_get_record()

主要可以用来检测一个输入的域名的真实性,以及用于网站验证用户输入的邮箱是否真实存在(有没有MX记录),当然也可以开发成查询平台,供用户查询各个域名的各项DNS记录情况;

用法:

    checkdnsrr ( string $host [, string $type = "MX" ] )

    第一个参数是域名或者ip

    第二个参数是解析类型,分别有:

    A (Address) 记录     指定主机名(或域名)对应的IP地址记录。

    MX 记录    指定邮件交换记录(默认)

    NS 记录     指定域名服务器的记录,指定该域名由哪个DNS来进行解析。

    SOA记录    一般在辅助的dns服务器里才用到,用来指定谁是主服务器

    PTR记录     从ip指向域名的反向解析记录

    CNAME记录       别名记录

    AAAA记录          是一个指向IPv6的记录

    A6记录               同上

    SRV记录             它是DNS服务器的数据库中支持的一种资源记录的类型,一般是为Microsoft的活动目录设置时的应用。

    TXT记录              文本信息

    ANY记录             任何记录,所有数据类型

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
意见
建议
发表
评论
返回
顶部