2012-03-30 15 views
8

RFCs 5321, 5322 und 6531 haben komplexe Regeln für die E-Mail-Adressen zu validieren. Sie:Warum wurden die RFCs über E-Mail-Adressen historisch so kompliziert?

  • erlauben creating comments innerhalb einer E-Mail-Adresse
  • Angebot kompliziert Beschränkungsregeln für Symbole: "() ,:;<>@[\]
  • treat postmaster Lokalteil als Groß- und Kleinschreibung, aber alle anderen als Groß- und
  • erlauben groups of email addresses

Dank dieser komplizierten Regeln kann geprüft werden, ob eine gegebene Zeichenfolge eine syntaktisch gültige E-Mail-Adresse gemäß th e RFCs can't be performed verwenden nur reguläre Ausdrücke.

Offenbar sind viele dieser Regeln nicht von großem E-Mail-Anbieter unterstützt.

Historisch gesehen, was waren die Beweggründe für für E-Mail-Adressen so komplexe Regeln zu schaffen? Die Wikipedia article on the origins of email scheint zu implizieren, dass der moderne Standard aus den frühen 1980er Jahren alle alten E-Mail-Systeme mit ihren speziellen Standards und Syntaxen abdecken sollte.

Die Entwickler von Standards, E-Mail-Providern und E-Mail-Endbenutzern haben jedoch alle ein Interesse an einem funktionierenden System, das leichter zu erreichen ist, wenn Regeln nicht zu geheimnisvoll sind und leicht in Software übertragen werden können Anzahl der Tests, warum haben wir heute einen Standard, der so kompliziert ist, dass niemand ihn in vollem Umfang nutzt?

Auch historisch gesehen, XML hat der Erfolg von denen zum Teil weitgehend durch JSON abgelöst worden, die Einfachheit ihrer Grammatik zugeschrieben werden.

+0

Weil RFCs alle Randfälle abdecken sollen, nicht nur "große Anbieter"? – ceejayoz

+3

Ich glaube, dies ist eine vernünftige und gültige Frage, die am besten mit einer historischen Rückschau diskutiert werden sollte. die oben genannten RFCs sind nicht die einzigen Täter; Der RFC, der die gültigen Wege zum Transkribieren von IP-Adressen regelt, ist ebenfalls verschachtelt. Interessanterweise werden in der Praxis nur winzige Teile dieser RFCs aktiv verwendet - praktisch alle E-Mail-Adressen sehen aus wie "name @ example.com" und alle IP-Adressen wie "123.234.231.132". wäre diese Frage nicht vorzeitig beendet worden, könnten wir jetzt eine lebhafte Diskussion über die Vor- und Nachteile und historischen Hintergründe dieser hochkomplexen RFCs führen. – flow

+0

Während dies eine interessante und gültige (im weiteren Sinne der Software-Community) Frage ist, ist es nicht richtig für StackOverflow. – JasonMArcher

Antwort

1

Die einzige sichere Möglichkeit zu sehen, ob eine angegebene E-Mail-Adresse echt ist, ist Senden Sie eine E-Mail an sie und sehen Sie, ob der Benutzer sie erhält. Die eine nützliche Prüfung, die auf einer Adresse durchgeführt werden kann, ist zu prüfen, ob die E-Mail-Adresse syntaktisch gültig ist. Das macht dieses Modul.

Systeme, die Mail Handling abgehende Post für alle gültigen Adressen der Lage sein müssen. Im Gegensatz zu den relevanten Standards behandeln einige defekte Systeme bestimmte legitime Adressen als ungültig und versäumen, E-Mails an diese Adressen zu verarbeiten. ! Hotmail zum Beispiel weigert sich eine der folgenden Standards zulässigen Zeichen Mail an eine beliebige Adresse senden enthält: # $% */^ `{|} ~

Gerade verschiedenen Ebenen von Standards, wo einige sind? sehr streng, also komplex.

+0

Während Ihre Antwort technisch korrekt ist, beantwortet sie nicht die Frage (was die Syntax von E-Mail-Adressen betrifft). Zu wissen, dass eine Straßenadresse syntaktisch korrekt ist oder nicht, ist eine Sache, zu wissen, ob ein Gebäude an dieser Stelle ist oder nicht, ist etwas anderes. – flow