Karl: Email Validierung

Hallo,

ich habe gerade eine für mich neue Funktion in php zur Überprüfung von E-mails gefunden:

  
  //überprüfen ob email valide  
  if(!filter_var($my_email, FILTER_VALIDATE_EMAIL)){  
   echo "keine gültige email!";  
  }  
  else{  
  echo "email ok";  
  }  

Ist solch eine Überprüfung (z.B. für ein Registrierunsformular) verlässlich?
Gruß
Karl

  1. Es gibt wirklich viele und teils sehr ausführliche Threads zu dem Thema, bitte benutze erst mal die Suchfunktion des Forums.

  2. Hi!

    ich habe gerade eine für mich neue Funktion in php zur Überprüfung von E-mails gefunden:
    Ist solch eine Überprüfung (z.B. für ein Registrierunsformular) verlässlich?

    Befrag dazu bitte zunächst das Archiv mit seinen unzähligen Beiträgen zu diesem Thema. Jedes dieser Prüfverfahren kann lediglich die formale Korrektheit einer Adresse feststellen, nicht jedoch, ob die Adresse tatsächlich existiert oder ob der Besitzer seine Mails (regelmäßig) liest.

    Lo!

  3. @@Karl:

    nuqneH

    if(!filter_var($my_email, FILTER_VALIDATE_EMAIL)){ … }
    Ist solch eine Überprüfung (z.B. für ein Registrierunsformular) verlässlich?

    Nein, sie ist falsch. Gültige E-Mail-Adressen wie ivan@россия.рф werden als ungültig abgewiesen.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. 'ǝɯɐu$ ıɥ

      if(!filter_var($my_email, FILTER_VALIDATE_EMAIL)){ … }
      Ist solch eine Überprüfung (z.B. für ein Registrierunsformular) verlässlich?

      Nein, sie ist falsch. Gültige E-Mail-Adressen wie ivan@россия.рф werden als ungültig abgewiesen.

      Da fällt wahrscheinlich auch ich+bingueltig@example.com durch...

      ssnɹƃ
      ʍopɐɥs

      --
      HTML, was ist das? Ein neues Männermagazin? Css.., was es alles gibt!
      1. Hi!

        if(!filter_var($my_email, FILTER_VALIDATE_EMAIL)){ … }
        Ist solch eine Überprüfung (z.B. für ein Registrierunsformular) verlässlich?
        Nein, sie ist falsch. Gültige E-Mail-Adressen wie ivan@россия.рф werden als ungültig abgewiesen.
        Da fällt wahrscheinlich auch ich+bingueltig@example.com durch...

        Nein. Ganz so 0815 ist der Filter nun auch wieder nicht. Aber bei Adressen mit Nicht-ISO-8859-1-Zeichen hat man ja schon das Problem, dass PHP damit (noch) nicht umgehen kann (abgesehen von einigen Spezialfunktionen).

        Lo!

        1. @@dedlfix:

          nuqneH

          Aber bei Adressen mit Nicht-ISO-8859-1-Zeichen hat man ja schon das Problem, dass PHP damit (noch) nicht umgehen kann (abgesehen von einigen Spezialfunktionen).

          Nicht nur PHP nicht. Auch HTML5 und die Implementierung von input[@type="email"] in Browsern nicht. (War Teil meines Vortrags beim MultilingualWeb-Workshop in Pisa.)

          Qapla'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
    2. Hallo,

      Gültige E-Mail-Adressen wie ivan@россия.рф werden als ungültig abgewiesen.

      vom Formalismus abgesehen: Gibt es denn TLDs mit Nicht-ASCII-Zeichen? AFAIK nicht; auch die Punycode-Repräsentation würde nichtexistente TLDs ergeben.

      Insofern halte ich dein Beispiel als Einwand für richtig, aber irrelevant.

      Ciao,
       Martin

      --
      Wer mit dem Finger droht, sollte ihn am Abzug haben, und nicht in der Nase.
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. @@Der Martin:

        nuqneH

        Gibt es denn TLDs mit Nicht-ASCII-Zeichen?

        Ja, etliche.

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
  4. Hi,

    ich habe gerade eine für mich neue Funktion in php zur Überprüfung von E-mails gefunden:

    [link:http://de2.php.net/manual/en/function.filter-var.php@title=filter_var]($my_email, FILTER_VALIDATE_EMAIL)

    Ist solch eine Überprüfung (z.B. für ein Registrierunsformular) verlässlich?

    kommt drauf an, was du erwartest. Ich weiß nicht, nach welchem Muster hier geprüft wird; es kann aber in jedem Fall nur eine schematische Überprüfung sein. Sie kann im besten Fall aussagen, ob eine Mailadresse den Regeln entsprechend erlaubt wäre oder nicht.
    Erfahrungsgemäß sind diese Prüfungen selten so treffsicher, dass man sich darauf verlassen möchte; sie weisen einerseits oft gültige Adressen ab, akzeptieren teils aber Adressen, die eigentlich nicht erlaubt wären.

    Eines können solche Funktionen aber auf gar keinen Fall: Feststellen, ob die Adresse (wenn sie denn formal korrekt sein sollte) tatsächlich existiert.

    Ciao,
     Martin

    --
    F: Was ist schneller: Das Licht oder der Schall?
    A: Offensichtlich der Schall. Wenn man den Fernseher einschaltet, kommt immer erst der Ton, und dann erst das Bild.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. kommt drauf an, was du erwartest. Ich weiß nicht, nach welchem Muster hier geprüft wird;

      Guckst du hier:

      http://svn.php.net/viewvc/php/php-src/trunk/ext/filter/logical_filters.c (bzw. exakte Stelle).

      1. mäh: aber jetzt die exakte Stelle.

  5. Hallo,

    E-Mail-Validierung ist keine rein formale Frage. Die Validierung, die dir ein technisch korrektes Ergebnis qua der neuesten Spezifikationen gibt, gibt es vermutlich nicht. Diese und viele andere verbreitete Validierungstechniken sind nicht mehr Plausibilitätsabfragen. Sie fragen mehr verbreitete Pattern ab als das, was technisch erlaubt und möglich ist. Insofern sind sie mit Einschränkungen praxistauglich, aber nicht korrekt.

    In der Regel reicht es aber auch, die grobe Plausibilität abzufragen. Ob die Adresse brauchbar ist, erfährst du erst, wenn du eine Aufforderung zur Registrierungsbestätigung hinschickst. Dieses Verfahren sollte dich interessieren. Erst dabei kann zuverlässig bestimmt werden, ob die Adresse zur Kommunikation geeignet ist.

    Mathias

    1. Hi!

      Ob die Adresse brauchbar ist, erfährst du erst, wenn du eine Aufforderung zur Registrierungsbestätigung hinschickst. Dieses Verfahren sollte dich interessieren. Erst dabei kann zuverlässig bestimmt werden, ob die Adresse zur Kommunikation geeignet ist.

      Zumindest für den Augenblick. Postfach löschen oder wenn Wegwerfadressen verwendet werden, bekommt die Anwendung auch nicht mit.

      Lo!

      1. Hi!

        Zumindest für den Augenblick. Postfach löschen oder wenn Wegwerfadressen verwendet werden, bekommt die Anwendung auch nicht mit.

        Jain. Natuerlich weiss so eine Funktion nicht, ob ich mir grad ne Freemaileradresse gebastelt hab und die nach einer Registrierung loesche. Was mir aber schon untergekommen ist: spamgourmet und aehnliche Adressen wurden schlicht als ungueltig erkannt und nicht aktzeptiert. Die klassische Wegwerfadresse funktioniert so also nicht mehr. Das hat aber ja nur peripher mit dem eigentlichen Thema zu tun.

        --
        Vergesst Chuck Norris.
        Sponge Bob kann unter Wasser grillen!
    2. Diese und viele andere verbreitete Validierungstechniken sind nicht mehr Plausibilitätsabfragen.

      ... nicht mehr als ...

  6. Hello Karl,

    ich habe gerade eine für mich neue Funktion in php zur Überprüfung von E-mails gefunden:

    //überprüfen ob email valide
      if(!filter_var($my_email, FILTER_VALIDATE_EMAIL)){
       echo "keine gültige email!";
      }
      else{
      echo "email ok";
      }

    
    >   
    > Ist solch eine Überprüfung (z.B. für ein Registrierunsformular) verlässlich?  
      
    Die Überprüfung mit dem Filter wird allemal besser sein, als jeden Quatsch zu akzeptieren oder aber, was viel schlimmer ist, sich Headermanipulation einzufangen.  
      
    Du solltest also erstmal definieren, was Du überhaupt erreichen willst:  
      
    - es könnte eine eMail-Adresse sein, formal  
    - es steht nur genau eine eMail-Adresse im Paramterfeld  
    - es wird nicht versucht, Header zu erzeugen  
      
    Wenn gegen eine dieser Bedingugnen verstoßen wird, würde ich sofort die rote Administratorlampe anknipsen und den Vorgang intern registrieren.  
      
    Nach außen würde ich irgendeine Bla-Bla-Antwort schicken, wie "Emailfunktion zur Zeit nicht verfügbar" oder "Es könnte ein Fehler in Ihrer email-Adresse vorliegen, oder unser System kann diese leider nicht verarbeiten"  
      
    Und wenn da einer versucht hat zu spammen: Anzeige! Nicht so schüchtern... Zensursula möchte doch den aufmerksamen Bürger haben :-P  
      
      
      
      
      
      
    Liebe Grüße aus dem schönen Oberharz  
      
      
    Tom vom Berg  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
     ☻\_  
    /▌  
    / \ Nur selber lernen macht schlau  
    <http://bergpost.annerschbarrich.de>