New question

Question:

Date: 26-07-2021 10:59:22 (In Spanish)

Validar que el email sea de tipo gmail o hotmail etc... en PHP[Unresolved]

Tengo un pequeño sitio web, un blog donde las personas pueden colocar su email para recibir boletines en su correo electrónico todas las semanas es como una manera de suscribirse.

Resulta que he publicado un enlace en un grupo de programadores para que chequearan mi sitio web que construí con puro PHP y resulta que me han estado poniendo a prueba la pagina colocando correo electrónicos que no existen como: prueba@prueba.com, ajajjsjs@jdsks.com etc...

Valide que los email sean de tipo email con el función FILTER_VALIDATE_EMAIL de php pero creo que no es suficiente y me gustaría hacer como hacen algunos sitios web que comprueban que tu email de tipo: gmail, hotmail, outlook, live, yahoo etc...

Espero que me hayan entendido y me puedan ayudar por favor.
Tags: Email - PHP Votes: 0 - Answers: 5 - Views: 9 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 28-07-2021 16:49:15 Saludos...

    La función FILTER_VALIDATE_EMAIL es como su nombre lo dice validar , pero solo verifica la estructura no si existe o no...

    Hace tiempo tuve el problema y lo que hice es que despues del arroba verificaba si el dominio existía, ya que si solo pones los públicos dejaras fuera los posibles clientes de dominios privados o dominios personalizados.

    De esa forma en mi caso resolví el problema.

    Tambien la otra si quieres que sea necesario el email para algo, por ejemplo registro, pues puedes poner el típico "validar email" antes de hacer algo mas...


    Exito Terrícola
      Votes: 2 - Link answer
     
  • Date: 03-08-2021 04:52:01 Esta librería puede ayudar   Votes: 3 - Link answer
     
  • Date: 04-08-2021 16:01:21 Hay quienes usan expresiones regulares para validar correos pero puede llegar a ser demasiado complicado. Por ejemplo, aunque no lo creas, esta es una dirección de email válida:

    "()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a"@example.org

    Muchos dirán que estoy yendo al extremo, que nadie usaría una dirección así, pero ¿cuántas veces un cliente ha hecho lo que considerabas imposible que hiciera? En mi caso, muchas, y eso te obliga a prever lo imposible. Teniendo en cuenta eso, mi solución fue validar la dirección de email enviando un correo electrónico. Si el usuario recibe el correo y contesta, quiere decir que su correo es correcto.

    Pero si aún quieres usar expresiones regulares, w3.org recomienda esta:

    ^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$

    Y supuestamente, esta funciona en el 99.99% de los casos (no se quién midió eso, pero con mi suerte, el 0.01% que no funciona seguramente me toca a mí):

    ^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$

    Saludos y suerte
      Votes: 0 - Link answer
     
  • Date: 10-08-2021 16:07:44 Hola Braylin,
    Una validación muy sencilla es extraer el dominio del correo y validar que el dominio exista, es decir que si alguien se registra con mi_correo@gmail.com tomas el dominio del correo (gmail.com) y checas si es un dominio válido con una función como gethostbyname y listo. Para salvarte tiempo y recursos puedes almacenar dominios válidos en una tabla adicional y primero consultar esa tabla antes de lanzar una petición.

    Saludos!
      Votes: 1 - Link answer
     
  • Date: 12-08-2021 02:46:00 Hola!

    Armé este artículo con una recopilación de soluciones posibles a este problema, espero ayude!
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In