PHP验证邮箱合法性

摘要:php原生函数验证邮箱合法性,及是否有MX记录

一般邮箱验证只要符合正则规则都会验证通过,所以造成邮箱很多不是合法的或者是空的,这里写了一个相对较好的方法

$email_arr = array("18337177020@163.com", "1@a.com");
foreach($email_arr as $email) {
        //验证邮箱规则是否合法
    if (filter_var($email) === false) {
      echo "invalid email: $email \n";
      continue;
    }
    //验证邮箱是否有MX记录
        $check_email_address = explode("@",$email);
        $check_email_host = array_pop($check_email_address);
    if(checkdnsrr($check_email_host,"MX") === false) {
      echo "invalid email: $email \n";
      continue;
    }
}

第一个验证相当于正则验证了,第二个验证的是mx记录,会相对稍微慢点,具体使用要看具体的情形了

评论