Zur Navigation

Email-Mail-Adressen ungültige Zeichen wie ! ^ ' %

sind doch gültige Zeichen.

1 chris1000

Hallo,

ich überarbeite gerate meine Regex für die ungültigen E-Mails.

Da hab ich mir mal das RFC2822 http://www.ietf.org/rfc/rfc2822.txt 3.2.4. durchgelesen, und da steht das Zeichen wie ' ! # & * usw. gültige Zeichen sind und in einer E-Mail vorkommen dürfen.

Wie macht Ihr das ablehnen oder nicht? die großen Google, Yahoo lehnen diese E-Mails ab.

Oder welche Zeichen läst Ihr zu und welche nicht?

Grüße

21.05.2008 01:42 | geändert: 21.05.2008 01:43

2 Jörg Kruse

Ich hab's mir bisher auch eher einfach gemacht und lasse diese Zeichen nicht zu

Beispielüberprüfung:
if (preg_match('/^([a-z0-9_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,4}$/', strtolower($email))) {
    // E-Mail-Adresse akzeptiert
}

Bei einer Änderung würde ich darauf achten, dass an anderer Stelle kein Sicherheitsloch aufgerissen wird - z.B. wenn du dich beim Einfügen in eine Datenbank bislang darauf verlassen hast, dass die Emailadresse keine Quotes enthält

21.05.2008 09:06

3 Jörg Kruse

Hier noch ein ausführlicher RegEx von Christian Kruse auf SELFHTML:

http://aktuell.de.selfhtml.org/artikel/programmiertechnik/email/index.htm

Darin können dann sogar quoted Strings im Userpart vorkommen.

Die von dir genannten Sonderzeichen werden allerdings auch dort ausgeschlossen:
Dabei darf der User-Part lediglich die Zeichen a-zA-Z0-9_.- enthalten, muss aber mit a-zA-Z0-9 beginnen.

21.05.2008 09:18 | geändert: 21.05.2008 09:19

4 chris1000

Danke Jörg für die Regex.

Ja die Sicherheit, man könnte natürlich die Zeichen auch in HTML Entities umwandeln und mit mysqli_escape_string() in die Datenbank speichern.

Werd ich mal versuchen, und schaun obs was bringt.

22.05.2008 00:55

... 3 Jahre später ...

5 Minka31@gmx.de (Gast)

Hallo!

welche der ausrufe zeichen sind gültig?

31.05.2011 07:43

6 Jörg Kruse

Dem Standard der Network Working Group zufolge (siehe den Link in Beitrag 1) sind Ausrufezeichen vor dem @ zulässig. Viele Emailprovider handhaben das aber so, dass Aufrufezeichen grundsätzlich nicht in Emailadressen verwendet werden dürfen.

31.05.2011 12:26

... 1 Monat später ...

7 Jörg Kruse

Ein Perl-Regex für den RFC822:

http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html

RFC822 ist nicht mehr aktuell und wurde durch oben genanntes RFC2822 abgelöst. Ist aber vielleicht mal ganz interessant, zu sehen, wie lang ein regulärer Ausdruck zur Validierung einer Emailadresse sein kann O_o

16.07.2011 23:30 | geändert: 16.07.2011 23:31

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]