Check Email

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Check Email

    Hallo,

    man kann ja Domains überprüfen, ob diese auch erreichbar sind. Gibt es das auch für Emails? Wenn ein Kunde z.B. seine Email einträgt, möchte ich überprüfen, ob diese auch gültig bzw. erreichbar ist. Geht das?


    Gruss
    Zocker

  • #2
    IMHO nein. Du kannst die Eingabe auf gültige Syntax prüfen.

    Du müsstest allenfalls eine Mail mit nem Kontrollink rausschicken und hoffen, dass der User diesen Link dann auch anklickt, so würdest du eine Bestätigung bekommen, ohne Interaktion des Users der die Mail-Adresse eingetragen hat, geht' aber IMHO nicht.

    Gruss
    Quetschi
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      Re: Check Email

      gültig -> regexp -> suchen!

      erreichbar -> mail hin senden, ggf. antwort des servers auswerten (antwortmail über unzustellbarkeit o.ä. an return-path).
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Hallo,

        ich habe nun folgende Funktion gefunden:

        PHP-Code:
        function validateEmail($Email) {
              global 
        $HTTP_HOST;

              if (!
        eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$"$Email)) {
                return 
        1;
              }
              list ( 
        $Username$Domain ) = split ("@",$Email);

              if (
        checkdnsrr $Domain"MX" ))  {
                if (
        getmxrr ($Domain$MXrec))  {
                
        $Mailserver $MXrec[0];
                } else {
                  return 
        2// return system error NOT invalid address
                
        }
              } else {
                
        $Mailserver $Domain;
              }

              if (
        $Connection fsockopen($Mailserver25)) {

                if (
        ereg("^220"$Rubbish fgets($Connection1024))) {

                  
        fputs $Connection"HELO $HTTP_HOST\r\n" );
                  
        $Rubbish fgets $Connection1024 );

                  
        fputs $Connection"MAIL FROM: <{$Email}>\r\n" );
                  
        $Fromstring fgets $Connection1024 );

                  
        fputs $Connection"RCPT TO: <{$Email}>\r\n" );
                  
        $Tostring fgets $Connection1024 );

                  
        fputs $Connection"QUIT\r\n");
                   
        fclose($Connection);

                  if (
        ereg("^250"$Fromstring) && ereg("^250"$Tostring)) {
                    return 
        0//  return successful validation
                  
        } else {
                    return 
        1// return invalid address
                  
        }
                } else {
                  return 
        1// return invalid address error
                
        }
              } else {
                return 
        1
              }
            } 
        Soweit funktioniert es auch. Wenn ich aber mehrere Emails in ein Array schreibe, geht es nicht mehr.

        $liste = array();
        if($obj = mysql_query("SELECT id, email FROM emails ORDER BY id ASC LIMIT 1"))
        {
        while($row = mysql_fetch_assoc($obj))
        {
        array_push($liste,$row);
        }
        }
        $email = $liste[0]['email'];
        $valid = validateEmail($email);

        verwende, erhalte ich bei $valid = 1. Schreibe ich es aber

        $email = "ah@august-starke.de";
        $valid = validateEmail($email);

        erhalte ich als Ergebnis 0. Wieso eigentlich?


        Gruss
        Zocker

        Kommentar

        Lädt...
        X