• User Attivo

    Validare una email

    salve,

    sono alla ricerca di un sistema che mi verifichi se l'email di un destinatario sia o meno valida! non parlo della forma ma se esiste veramente!

    grazie in anticipo!


  • User

    Ecco qua:

    /**

    • Funzione che controlla l'esattezza di un indirizzo e-mail
    • @param email sting Indirizzo e-mail che si vuole controllare
    •        check_dns    bool    Abilita o mano il controllo dei record DNS
      
    • @return bool FALSE non valida TRUE valida
      /
      function check_email($email, $check_dns = true)
      {
      if ( // Controlla i caratteri che compongono e-mail
      (eregi('(@.
      @)|(..)|(@.)|(.@)|(^.)', $email))
      ||
      (eregi('^.+@([?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$', $email))
      ||
      (preg_match("/^\S+@\S+(.\S+)+$/i", $email))
      )
      {
      if (0 != $check_dns) // Se richiesto controllo DNS
      {
      $host = explode('@', $email); // Recupera nome del dominio
      if (0 != checkdnsrr($host[1], 'MX')) // Controlla record del mail exchanger
      {
      return TRUE; // Tutto OK
      }
      if (0 != checkdnsrr($host[1], 'A')) // Eventualmente controlla indirizzo
      {
      return TRUE; // Tutto OK
      }
      if (0 != checkdnsrr($host[1], 'CNAME')) // Controlla canonical name
      {
      return TRUE; // Tutto OK
      }
      }
      else // Se non richiesto controllo DNS
      {
      return TRUE; // Tutto OK
      }
      }
      return FALSE; // Se e-mail incorretto esce in errore

    }


  • User Attivo

    grazie,

    ma qst scritp controlla solo se il dominio è vero o falso? giusto?

    a me serve che verifichi se [email][email protected][/email] esiste veramente!

    capito?


  • User

    Quello non lo puoi fare su tutti i server di posta. Esiste un controllo che permette di fare una specie di ping sul nome utente al server, ma non sempre questi rispondono. Direi che il tuo è un problema tanto comune quanto irrisolto (è quello il motivo principale perchè tutte le registrazioni su siti importanti inviano una mail contenente un codice di controllo e sta poi all'utente sbloccarsi l'account mediante quel codice). Se esistesse uno script come quello che chiedi, probabilmente l'avrebbero già usato in qualche sito...

    Poi posso sempre sbagliarmi. In tal caso ditemi come si può fare una cosa del genere che è servita anche a me molto spesso (soprattutto per le registrazioni alle newsletter...).