
Buscando un poco en Google aparecen enseguida montones de funciones para validar e-mails en PHP, típicamente repartidas en estas categorías:
La mía es mucho más humilde:
La comprobación es muy poco exahustiva y puede dejar pasar direcciones con sintaxis no válida. Únicamente busca detectar errores obvios al teclear, no impedir que alguien ponga una dirección falsa. De ahí el «parece».
La filosofía subyacente es tener una función cuyo código se entienda y minimizar el riesgo de dar el alto a direcciones que sí son válidas. Resulta absurdo no poderte registrar en un sitio sólo porque tu dominio de primer nivel tiene cuatro letras o no aparece en una lista incompleta que recopiló hace cinco años un webmaster con demasiado tiempo libre. La única forma de comprobar si una cuenta de correo existe es enviar un mensaje con algún código aleatorio que haya que teclear de vuelta (y eso tampoco es a prueba de balas).
Nota: merece la pena leer esta respuesta a una pregunta sobre validación de e-mails publicada en Stack Overflow. Incluye una expresión regular que es probablemente mejor que ésta.
Esta función contempla dominios internacionales, como álvaro.es, pero sólo si aparecen codificados en ASCII, como xn--lvaro-wqa.es. Si algún día alguien los empieza a usar de verdad sería cuestión de hacerle un buen Punycode al e-mail antes de validarlo. Para más información:
Esta página ha sido impresa el jueves 29 de julio de 2010 (21:26:43 +0200) desde http://borrame.com/recortes/php/parece-email-valido.html. La última vez que miré contenía HTML válido con CSS fresquito y si tiene flatas de ortografía ha sido sin querer.
borrame.com es el sitio anteriormente conocido como bits.demogracia.com (no confundir con Demogracia, que sólo pasaba por ahí).
© 2005-2010 by Álvaro G. Vicario (alvaro.es) • Burgos (España) • borrame.com