PHP: ¿Cómo saber si un e-mail es correcto?
De Foros del Web
Muchas veces nos preguntamos si el mail que nos ponen en un formulario es válido, osea que existe, pues bien con esta función podemos comprobar si este mail existe, y si este esta escrito correctamente
Código PHP:
<? function ValidarMail($email) { global $HTTP_HOST; $resultado = array(); if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,6}$",$email)) { $resultadoado[0]=false; $resultado['code']="702"; return $resultado; } list ( $Username, $dominio ) = split ("@",$email); if (getmxrr($dominio, $MXHost)) $conecta_dominio = $MXHost[0]; else $conecta_dominio = $dominio; $conectar = fsockopen ( $conecta_dominio, 25 ); if ($conectar) { if (ereg("^220", $ver = fgets($conectar, 1024))) { fputs ($conectar, "HELO $HTTP_HOST\r\n"); $ver = fgets ( $conectar, 1024 ); fputs ($conectar, "MAIL FROM: <{$email}>\r\n"); $From = fgets ( $conectar, 1024 ); fputs ($conectar, "RCPT TO: <{$email}>\r\n"); $To = fgets ($conectar, 1024); fputs ($conectar, "QUIT\r\n"); fclose($conectar); if (!ereg ("^250", $From) || !ereg ( "^250", $To )) { $resultado[0]=false; $resultado['code']="700"; return $resultado; } } else { $resultado[0] = false; $resultado['code'] = "Død"; return $resultado; } } else { $resultado[0]=false; $resultado['code']="701"; return $resultado; } $resultado[0]=true; $resultado['code']="200"; return $resultado; } //fin funcion /// la funcion superior se puede usar en unix pero en windows XP,200,NT //hay que utilizar la funcion que sigue pues windows no soporta la funcion getmxrr, (en win 9X no funcionaria ) /// esta funcion es aportada por irondan_2358 function getmxrr($hostname, &$mxhosts) { $mxhosts = array(); exec('nslookup -type=mx '.$hostname, $result_arr); foreach($result_arr as $line) { if (preg_match("/.*mail exchanger = (.*)/", $line, $matches)) $mxhosts[] = $matches[1]; } return( count($mxhosts) > 0 ); // la un }
--Jordi1 16 Mar 2004
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
