Eingabetyp = "E-Mail" ermöglicht test @ test, warum?

10

Ich bin immer davon ausgegangen, dass der E-Mail-Validierungs-Regex des Browsers robuster ist als ein Regex-Muster in JS / PHP.

Mein Arbeitgeber hat mir gerade gezeigt, dass beide Zeichenfolgen als korrekt angesehen werden (zuletzt in FF28):

[email protected] // Expected to be true, is true
test@test     // Expected to be false, is true

Warum ist letzteres wahr? Ist das ein Fehler oder etwas für die Zukunft? Denn soweit ich das beurteilen kann, ist es nicht richtig, keine Erweiterung zu verwenden (abgesehen von vielleicht lokalen Hosts).

Wer kann etwas Licht ins Dunkel bringen?

Martijn
quelle
2
"abgesehen von vielleicht localhosts" - und wie unterscheidet sich der Browser?
MrWhite
1
Darüber hinaus halte ich dies für <input type="email" />nur für mobile Websites nützlich, sodass die meisten Tastaturen mit einer geeigneten Anzeige angezeigt werden (mit der @Taste und einigen .comVerknüpfungen…).
RichouHunter
Ich weiß nicht, ich baue keine Browser :) Könnte ein kluger Trick sein, oder vielleicht eine Einstellung, die Sie hinzufügen könntenpattern
Martijn
6
Das ist eine absolut gültige Adresse. Warum sollte sie abgelehnt werden?
Jörg W Mittag
1
weil test@testist eine gültige E-Mail-Adresse ... es wird testals behandelt tld. Genau wie test@comist eine gültige E-Mail-Adresse für die comtld ... tools.ietf.org/html/rfc2822#section-3.4.1
SnakeDoc

Antworten:

20

Es ist gültig, da es testsich um eine Top-Level-Domain handeln kann und localpart@top-level-domaineine gültige E-Mail-Adresse ist.

Siehe zum Beispiel E-Mail-Adresse, Domain-Teil

Matteo
quelle
Und da ICANN nun ein Verfahren hat, mit dem jeder (groß genug) die TLD seiner Wahl beantragen kann, ist es für einen E-Mail-Validator nicht mehr möglich, testeine TLD abzulehnen, nur weil sie noch nicht registriert ist.
Steve Jessop
1
@SteveJessop Darüber hinaus hat das OP nicht angegeben, ob er von syntaktischer Gültigkeit spricht (die E-Mail wäre auch dann gültig, wenn sie nicht registriert ist) oder ob er davon spricht, zu überprüfen, ob die E-Mail funktioniert (und in diesem Fall wäre viel mehr erforderlich). .
Matteo
Als ich nicht überprüfte, ob es existiert, war ich überrascht, dass die Domain-Erweiterung nicht erforderlich war. Dies würde die Browser-Validierung viel weniger nützlich machen, da nur jemand asd @ ads eingeben muss und sie erfolgreich ist.
Martijn
5
@Martijn: Die "Browser-Validierung" ist nur eine Validierungsprüfung in der ersten Zeile (die leicht umgangen werden kann), daher muss sie eine möglichst umfassende Prüfung sein. Die endgültige "strenge" Validierung muss noch in Ihrer serverseitigen Logik erfolgen.
MrWhite
3

Sie können Ihre Hosts-Datei bearbeiten oder einen DNS-Server in einem lokalen Netzwerk ausführen, um einen Computer mit einem Domänennamen der obersten Ebene zu erstellen. Auf die E-Mail-Adresse kann nur zugegriffen werden, wenn sie nur innerhalb dieses lokalen Netzwerks weitergeleitet wird, es sich jedoch um eine mögliche Konfiguration handelt.

Lie Ryan
quelle
2

Beachten Sie auch , dass Web - Browser nicht sind erforderlich keine Validierungsprüfungen durchzuführen. Ältere Browser machen mit der E-Mail-Adresse nichts Besonderes. Neuere Browser werden möglicherweise überprüft, aber der Typ "E-Mail" ist auf Mobilgeräten am nützlichsten, auf denen dem Benutzer möglicherweise eine spezielle Tastatur angezeigt wird.

Ron Lussier
quelle