Marius: Emailadress mit PHP validieren

Guten Tag,

ich möchte gerne die äußerliche Gültigkeit einer Emailadresse überprüfen. Die FAQ der Newsgroup de.comp.lang.php schlägt vor die Überprüfung mit der Pear Klasse 'Mail_RFC822' zu machen:

http://www.php-faq.de/q/q-mail-adresse-gueltig.html
http://pear.php.net/manual/de/package.mail.mail-rfc822.parseaddresslist.php

Aber ich komme mit Hilfe des Manuals nicht dahinter, wie das zu bewerkstelligen ist. Die Funktion parseAddressList(), zerlegt einen String ja nur in die Adressenbestandteile und gibt ihn als mehrdimensionales Array zurück.
Meine Frage ist jetzt, wie ich mit Pear erreiche, dass die Adresse geprüft wird und am Ende entsprechen 'true' oder 'false' zurückgeliefert wird.

Ich hoffe, dass mir da mal jemand auf die Sprünge helfen kann.

MfG Marius

  1. Hi,

    if(ereg("[1]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+.([a-zA-Z0-9-]{2,4})",$email) == true) {
    //fortfahren
    }
    else {
    //Fehler
    }

    MfG Hopsel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001

    1. _a-zA-Z0-9- ↩︎

    1. Hallo,

      Dein Ausdruck führt aber dazu, dass eine Adresse wie "Hallo Chef"@firma.test als ungültig bezeichnet wird, obwohl sie es nicht ist.

      Viele Grüße,
      Christian

    2. Hallo Hopsel,

      if(ereg("[1]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+.([a-zA-Z0-9-]{2,4})",$email) == true) {

      Guck mal in der deutschen Wikipedia, welche Zeichen in der Addy noch alles zugelassen sind.

      Außerdem: Es fehlt das $-Zeichen am Ende des Ausdrucks und es gibt
      TLDs mit 6 Buchstaben.

      Und Umlautdomains. Und niemand hindert mich daran, trotz dieser Prüfung
      eine Adresse wie foo@example.com einzugeben.

      Gruß
      Alexander Brock

      --
      SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:? ss:| de:> js:( ch:| sh:( mo:} zu:}
      http://againsttcpa.com

      1. _a-zA-Z0-9- ↩︎

  2. Hallo Marius,

    Meine Frage ist jetzt, wie ich mit Pear erreiche, dass die Adresse geprüft wird und am Ende entsprechen 'true' oder 'false' zurückgeliefert wird.

    Wenn es auch ohne PEAR gehen darf: < http://aktuell.de.selfhtml.org/tippstricks/programmiertechnik/email/index.html>

    Viele Grüße,
    Christian

    1. Hi Christian,
      Danke für die schnelle Antwort.

      Wenn es auch ohne PEAR gehen darf: http://aktuell.de.selfhtml.org/tippstricks/programmiertechnik/email/index.html

      Ich nehme jetzt die von dir gepostete Funktion. Es war nämlich mehr so ein allgemeines Interesse, da ich im Moment die Pear Packages ausprobiere und da überhaupt nicht weiter wusste.

      MfG Marius

  3. echo $begrueszung;

    ich möchte gerne die äußerliche Gültigkeit einer Emailadresse überprüfen. Die FAQ der Newsgroup de.comp.lang.php schlägt vor die Überprüfung mit der Pear Klasse 'Mail_RFC822' zu machen:

    Meine Frage ist jetzt, wie ich mit Pear erreiche, dass die Adresse geprüft wird und am Ende entsprechen 'true' oder 'false' zurückgeliefert wird.

    Mail_RFC822::parseAddressList($mailAddress) liefert im Erfolgsfall ein Objekt mit den Einzelteilen als Eigenschaften zurück, ansonsten ein PEAR_Error-Objekt.

      
    if (PEAR::isError($result = Mail_RFC822::parseAddressList($mailAddress)))  
      echo htmlspecialchars($result->getMessage());  
    else  
      ...  
    
    

    (Bei PEAR empfiehlt es sich immer auch einen Blick in die Quellen zu werfen, da das Manual mitunter nur als Groborientierung dient.)

    echo "$verabschiedung $name";