Email Aufbau Spezifikation
Email Aufbau Spezifikation
am 06.02.2005 18:43:56 von Sebastian Paral
Hallo,
ich habe vor eine Email mit PHP auf Richtigkeit zu testen.
Dazu brauch ich eine Spezifikation, welche Zeichen nur
erlaubt sind und welche Domainkürzel und wieviele Buchstaben
vor und nach dem @ usw. Ich würde das halt gerne genau wissen
wie der Aufbau einer solchen Adresse ist.
Wenn wer helfen kann wär ich dankbar. Google hat leider nicht
allzuviel verraten oder vielleicht hab ich falsch gesucht.
Danke, Sebastian
Re: Email Aufbau Spezifikation
am 06.02.2005 19:08:08 von Jochen Schalanda
On 02/06/2005 06:43 PM, Sebastian Paral wrote:
> Hallo,
>
> ich habe vor eine Email mit PHP auf Richtigkeit zu testen.
> Dazu brauch ich eine Spezifikation, welche Zeichen nur
> erlaubt sind und welche Domainkürzel und wieviele Buchstaben
> vor und nach dem @ usw. Ich würde das halt gerne genau wissen
> wie der Aufbau einer solchen Adresse ist.
>
> Wenn wer helfen kann wär ich dankbar. Google hat leider nicht
> allzuviel verraten oder vielleicht hab ich falsch gesucht.
>
> Danke, Sebastian
>
>
Hi,
RFC 2822 [1] ist dein Freund. Da ist u. a. auch der Aufbau der Adressen
beschrieben. Alternativ natürlich auch die gute PHP FAQ:
15.9. Wie kann ich die Gültigkeit einer Mailadresse testen?
http://php-faq.de/q/q-mail-adresse-testen.html
[1]: http://www.faqs.org/rfcs/rfc2822.html
Gruß
Jochen
Re: Email Aufbau Spezifikation
am 06.02.2005 19:10:01 von Matthias Esken
Sebastian Paral schrieb:
> ich habe vor eine Email mit PHP auf Richtigkeit zu testen.
> Dazu brauch ich eine Spezifikation, welche Zeichen nur
> erlaubt sind und welche Domainkürzel und wieviele Buchstaben
> vor und nach dem @ usw. Ich würde das halt gerne genau wissen
> wie der Aufbau einer solchen Adresse ist.
Such mal nach RFC 2822, dem Nachfolger von RFC 822.
Du wirst erschrecken. Eine Adresse wie zum Beispiel
"Matthias Esken"@[62.216.174.52] müsste meiner Meinung nach danach
durchaus gültig sein.
Gruß,
Matthias
--
Sarkasmus ist hier fehl am Platz. In Newsgruppen geht es um
ernsthafte Diskussionen und nicht um irgendwelche Herumbloedeleien.
(Sven Paulus in <9tg7cs$lb7$1@akk3.akk.uni-karlsruhe.de>)
Re: Email Aufbau Spezifikation
am 06.02.2005 20:26:02 von Daniel Bolege
Hallo,
> ich habe vor eine Email mit PHP auf Richtigkeit zu testen.
> Dazu brauch ich eine Spezifikation, welche Zeichen nur
> erlaubt sind und welche Domainkürzel und wieviele Buchstaben
> vor und nach dem @ usw. Ich würde das halt gerne genau wissen
> wie der Aufbau einer solchen Adresse ist.
Wenn Du Dir die bereits genannten RFCs angesehen hast, wirst Du
festgestellt haben, dass die Syntax gültiger E-Mail-Adressen
recht komplex ist.
Jeffrey E.F. Friedl hat in seinem Buch "Regular Expressions" [1]
eine regex abgedruckt, um die korrekte Syntax eine E-Mail-Adresse
zu prüfen. Sie ist auch online:
http://examples.oreilly.com/regex/email-opt.pl
Viel Spaß ;-)
Daniel
[1] Jeffrey E. F. Friedl: Mastering Regular Expressions
Powerful Techniques for Perl and Other Tools. 1997
http://www.oreilly.com/catalog/regex/
Re: Email Aufbau Spezifikation
am 07.02.2005 01:11:07 von Andreas Schwarz
Sebastian Paral wrote:
> Hallo,
>
> ich habe vor eine Email mit PHP auf Richtigkeit zu testen.
> Dazu brauch ich eine Spezifikation, welche Zeichen nur
> erlaubt sind und welche Domainkürzel und wieviele Buchstaben
> vor und nach dem @ usw.
Lass es, du wirst nicht glücklich damit. Absichtliche Falscheingaben
kannst du eh nicht verhindern, also belass es dabei zu prüfen ob genau
ein @ in der Eingabe vorkommt, damit man nicht mehrere Adressen zusammen
angeben kann. Wenn du's viel komplizierter machst gewinnst du nichts und
schaffst dir nur Probleme. Wer hätte vor 4 Jahren gedacht dass es mal
TLDs mit 4 Zeichen geben würde? Der Programmierer eines
PHP-Newslettersystems das ich benutzt habe zum Beispiel nicht, was ich
erst vor kurzem durch den Hinweis eines Kunden erfahren habe.
Re: Email Aufbau Spezifikation
am 07.02.2005 01:38:45 von Johannes Mueller
Sebastian Paral schrieb:
> Hallo,
>
> ich habe vor eine Email mit PHP auf Richtigkeit zu testen.
> Dazu brauch ich eine Spezifikation, welche Zeichen nur
> erlaubt sind und welche Domainkürzel und wieviele Buchstaben
> vor und nach dem @ usw. Ich würde das halt gerne genau wissen
> wie der Aufbau einer solchen Adresse ist.
>
> Wenn wer helfen kann wär ich dankbar. Google hat leider nicht
> allzuviel verraten oder vielleicht hab ich falsch gesucht.
>
> Danke, Sebastian
Emailadressen sind irgendwie so einfach anzugucken, aber sie sind doch
sehr komplex, wenn sie per regex auf alle möglichen spezialfälle
geprüft werden sollen. Ich meine mich sogar daran erinnern zu können,
dass hier auch schonmal geschrieben wurde, dass mehrere @-zeichen in
einer email vorkommen können, dass auch umlaute gültige emailadressen
erzeugen können usw...
also was wissen wir genau?:
1. jeder der absichtlich semantisch falsche Adressen aber syntaktisch
richtige angibt, kann diese auch durch eine Regex schleusen - ergo
bleiben also nur die Vertipper übrig
2. eine emailadresse hat keine leerzeichen
3. eine emailadresse besitzt _mindestens_ ein @
wir setzen ausserdem voraus, dass jede email einer mindestens 2 zeichen
langen domain zugeordnet werden kann und die Topleveldomain nur aus
buchstaben besteht, ausserdem meinen wir zu wissen, dass die TLD nur
zwischen 2 und 6 zeichen lang sein kann.
setzen wir also unsere regex zusammen:
$pattern = '/^[^\s]+@[^\s]{2,}\.[a-Z]{2,6}$/';
hth
Hannes
P.S.: wie schon vom vorposter beschrieben könnte es sein, dass auch
emailadressen die ips als domain angeben richtig sind, werden hier aber
ausgeschlossen.
Re: Email Aufbau Spezifikation
am 07.02.2005 05:03:09 von Niels Braczek
Johannes Mueller schrieb:
> also was wissen wir genau?:
>
> 1. jeder der absichtlich semantisch falsche Adressen aber syntaktisch
> richtige angibt, kann diese auch durch eine Regex schleusen - ergo
> bleiben also nur die Vertipper übrig
ACK. Daher macht es auch keinen Sinn, mehr als eine oberflächliche
Prüfung zu machen.
> 2. eine emailadresse hat keine leerzeichen
Das ist nicht wahr. E-Mail-Adressen dürfen sehr wohl Leerzeichen haben.
Es dürfen sogar Tabulatoren und Zeilenschaltungen enthalten sein.
> 3. eine emailadresse besitzt _mindestens_ ein @
Das stimmt allerdings.
> wir setzen ausserdem voraus, dass jede email einer mindestens 2
> zeichen langen domain zugeordnet werden kann und die Topleveldomain
> nur aus buchstaben besteht, ausserdem meinen wir zu wissen, dass die
> TLD nur zwischen 2 und 6 zeichen lang sein kann.
Eine Domain besteht (im Sinne einer E-Mail-Adresse) aus mindestens einem
Zeichen.
Laut RfC 2822 ist z.B.
#@!
eine gültige E-Mail-Adresse. Beweis:
# @ !
atext "@" atext
dot-atom-text "@" dot-atom-text
dot-atom "@" dot-atom
local-part "@" domain
addr-spec
qed.
Auf was will man also eigentlich prüfen?
MfG
Niels
--
Bitte senden Sie mir keine Microsoft-Anhänge.
Siehe http://www.gnu.org/philosophy/no-word-attachments.de.html
Re: Email Aufbau Spezifikation
am 07.02.2005 12:36:42 von Johannes Mueller
Niels Braczek schrieb:
>> 2. eine emailadresse hat keine leerzeichen
>
> Das ist nicht wahr. E-Mail-Adressen dürfen sehr wohl Leerzeichen
> haben. Es dürfen sogar Tabulatoren und Zeilenschaltungen enthalten
> sein.
hmm... setzen wir also voraus das niemand leerzeichen in seiner Email
hat und dies vorerst auch so bleiben wird. Menschen mit
leerzeichen/tabulatoren etc. in der email werden also ausgeschlossen. -
Wieso ärgern die einen in den Spezifikationen eigentlich so?
>> wir setzen ausserdem voraus, dass jede email einer mindestens 2
>> zeichen langen domain zugeordnet werden kann und die Topleveldomain
>> nur aus buchstaben besteht, ausserdem meinen wir zu wissen, dass die
>> TLD nur zwischen 2 und 6 zeichen lang sein kann.
>
> Eine Domain besteht (im Sinne einer E-Mail-Adresse) aus mindestens
> einem Zeichen.
> Laut RfC 2822 ist z.B.
Aber Domains mit einem Zeichen werden doch gar nicht vergeben bzw. sind
noch nicht vergeben worden, oder?
> #@!
>
> eine gültige E-Mail-Adresse. Beweis:
>
> # @ !
> atext "@" atext
> dot-atom-text "@" dot-atom-text
> dot-atom "@" dot-atom
> local-part "@" domain
> addr-spec
wow, die spezifikation sieht gut aus, nur mit dem verstehen klappts
noch nicht ganz. Ich hab schön öfter mal versucht das zu verstehen,
aber ich blick da irgendwie nicht so ganz durch.
> qed.
> Auf was will man also eigentlich prüfen?
....auf gemeine Betrüger. ;)
Johannes
Re: Email Aufbau Spezifikation
am 07.02.2005 12:52:35 von Hannes Minimair
Johannes Mueller schrieb:
> Aber Domains mit einem Zeichen werden doch gar nicht vergeben bzw. sind
> noch nicht vergeben worden, oder?
x.org
z.com
....
Ciao...
Hannes
Re: Email Aufbau Spezifikation
am 07.02.2005 13:13:02 von Hartmut Holzgraefe
Johannes Mueller wrote:
> hmm... setzen wir also voraus das niemand leerzeichen in seiner Email=20
> hat und dies vorerst auch so bleiben wird.=20
ich würde Microsoft (so gern ich sie auch manchmal ignorieren möchte =
;)
nicht als "niemand" bezeichnen wollen ...
--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com
Are you MySQL certified? www.mysql.com/certification
Re: Email Aufbau Spezifikation
am 07.02.2005 14:10:47 von Niels Braczek
Johannes Mueller schrieb:
> Niels Braczek schrieb:
>> #@!
>>
>> eine gültige E-Mail-Adresse. Beweis:
>>
>> # @ !
>> atext "@" atext
>> dot-atom-text "@" dot-atom-text
>> dot-atom "@" dot-atom
>> local-part "@" domain
>> addr-spec
>
> wow, die spezifikation sieht gut aus, nur mit dem verstehen klappts
> noch nicht ganz. Ich hab schön öfter mal versucht das zu verstehen,
> aber ich blick da irgendwie nicht so ganz durch.
Das ist eine Herleitung mithilfe der Augmented Backus-Naur-Form, die
gerne für die Definition einer Syntax benutzt wird, so auch in RfC2822.
Genaueres über die ABNF und wie sie funktioniert/zu lesen ist steht in
RfC2234.
>> Auf was will man also eigentlich prüfen?
>
> ...auf gemeine Betrüger. ;)
Die geben valide falsche Adressen an, zB. 'dummy@example.org'. Schon
verloren.
MfG
Niels
--
IcH fInDe AuCh, dAsS eS nIcHt So WiChTig IsT, eInEn TeXt In KoRrEcKtEr
gRoSs- Und KlEiNsChReIbUnG zU vErFaSsEn, Da DiEs DeR LeSbArKeIt KaUm
AbBrUcH tUt UnD zUdEm AuSdRuCk MeInEr InDiViDuAlItAeT iSt.
[Joachim Kromm in dsnu]
Re: Email Aufbau Spezifikation
am 07.02.2005 19:33:08 von Matthias Esken
Andreas Schwarz schrieb:
> Wer hätte vor 4 Jahren gedacht dass es mal
> TLDs mit 4 Zeichen geben würde?
Jede der sich auskannte. Die TLD .nato existierte zu dem Zeitpunkt schon
lange.
Gruß,
Matthias
Re: Email Aufbau Spezifikation
am 07.02.2005 19:37:13 von Matthias Esken
Johannes Mueller schrieb:
> hmm... setzen wir also voraus das niemand leerzeichen in seiner Email
> hat und dies vorerst auch so bleiben wird.
Davon würde ich nicht ausgehen.
Wahrscheinlich falle ich jetzt allerdings in meinen eigenen Filter. *g*
Gruß,
Matthias
Re: Email Aufbau Spezifikation
am 11.02.2005 15:48:07 von Andreas Schwarz
Matthias Esken wrote:
> Andreas Schwarz schrieb:
>
>
>>Wer hätte vor 4 Jahren gedacht dass es mal
>>TLDs mit 4 Zeichen geben würde?
>
>
> Jede der sich auskannte.
Was leider schon mal einen guten Teil der PHP-Bastler ausschließt, wenn
man das was man in Open Source sieht verallgemeinern kann.
> Die TLD .nato existierte zu dem Zeitpunkt schon lange.
Ist ja völlig egal.