| Subcribe via RSS

Función en PHP para comprobar si un email es válido

Enero 25th, 2008 Posted in php

Hoy he tenido que preparar una pequeña función en PHP para que compruebe si los emails son válidos. Está hecha usando expresiones regulares:

1
2
3
4
if (ereg("([A-Za-z0-9_.-]+@[A-Za-z0-9_.-]+\.[A-Za-z0-9_-]+)", $email, $resultado))
{
    echo $resultado[1];
}

Este sencillo script sólo admitirá emails que contengan letras y números, guiones y puntos, por ejemplo:

paco@email.com
paco.smith@email.com
paco.smith@mi.email.com
paco_smith@mi-email.com

y no admitirá emails con espacios o caracteres “extraños”.

Actualización: He corregido un pequeño un error en el patrón que hacía que aceptase emails con una barra invertida, como por ejemplo:

pa\co@email.com


Entradas relacionadas

  1. Función en PHP para comprobar si un email es válido – Explicación
  2. Script PHP para extraer emails de uno o varios ficheros
  3. PHPList – un excelente gestor de boletines
  4. Función PHP que añade un carácter al final si no existe
  5. Evitar a los spambots
Valoración:
1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (Sin calificar)
Loading ... Loading ...

4 Responses to “Función en PHP para comprobar si un email es válido”

  1. Mony Says:

    Hola. Lo que quería comprobar es que hay algunos formularios en los que se verifica que la dirección realmente exista, pero en otros como éste, solo se basan en patrones: que tenga arroba, dominio, punto, pero la dirección puede no existir.


  2. gorkau Says:

    Este ejemplo era precisamente para eso, para verificar si el email tiene un formato válido. Comprobar que el email existe realmente es algo más complicado; más o menos la idea sería hacer que nuestro script conecte con el servidor destino con nslookup para buscar información del servidor de correo. Luego, mediante telnet enviaríamos un comando para comprobar si existe. Tienes aquí esto bastante más detallado:

    http://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-address-exists-without-sending-an-email/

    Tiene algunos inconvenientes, como que el servidor puede aceptar todos los emails como válidos y luego generar un email de rebote para los que no existen.

    Aquí tienes un script en Python para automatizar el proceso:

    http://gist.github.com/47987


  3. gorkau Says:

    Por cierto, a partir de PHP 5.2.0 se puede comprobar si un email es válido usando:

    filter_var(’roberto@example.com’, FILTER_VALIDATE_EMAIL);

    Ver más información aquí:

    http://es2.php.net/manual/es/function.filter-var.php


  4. yelitza Says:

    quiero que hablemos


Leave a Reply