Entwickler-Ecke

Sonstiges (.NET) - Email Validierung - RegEx oder doch lieber die .Net Klassen?


haschme - Mi 01.04.20 11:13
Titel: Email Validierung - RegEx oder doch lieber die .Net Klassen?
Hallo zusammen ich hoffe ihr seid noch alle Gesund ;-)


Ich hätte mal eine grundlegende Frage zu einem meiner Projekte.
Es geht um ein Tool welches eine Datenbank mit Email-Adressen anhand verschiedener Kriterien überprüft.

Unter anderem ob das Format der Email korrekt ist.
Jetzt habe ich schon unglaublich viele unterschiedlichste RegEx-Ansätze im Internet gesehen,
aber eben auch die äußerst charmante Möglichkeit (weil wenig Code nötig ist) das Format via System.ComponentModel.DataAnnotations.EmailAddressAttribute
mit der Methode IsValid("MeineEmail@irgendwas.de") überprüfen zu lassen.

Bei meinen bisherigen Tests war ich auch zufrieden mit den Ergebnissen dieser Methode.
Als man mich aber gefragt hat was genau letztendlich in diese Methode überprüft wird, hatte ich leider keine direkte Antwort parat.
Auch in den Microsoft Docs habe ich dazu leider keine Info dazu gefunden.
Kennt jemand zufällig eine Quelle oder kann mir erklären nach welchem Muster genau diese Methode Emails auf Validität prüft?

Vielen Dank und viele Grüße!


Moderiert von user profile iconTh69: Topic aus Algorithmen, Optimierung und Assembler verschoben am Mi 01.04.2020 um 12:11


Th69 - Mi 01.04.20 12:08

Du kannst direkt in den Sourcen nachschauen: EmailAddressAttribute [https://referencesource.microsoft.com/System.ComponentModel.DataAnnotations/a.html#c3ae85dfd8a9f58c]
Es wird also, je nach Einstellung mittels AppSettings.DisableRegEx per (über 900 Zeichen langem!) RegEx oder nur anhand des Vorkommens von '@' überprüft.


haschme - Do 02.04.20 09:21

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Du kannst direkt in den Sourcen nachschauen: EmailAddressAttribute [https://referencesource.microsoft.com/System.ComponentModel.DataAnnotations/a.html#c3ae85dfd8a9f58c]
Es wird also, je nach Einstellung mittels AppSettings.DisableRegEx per (über 900 Zeichen langem!) RegEx oder nur anhand des Vorkommens von '@' überprüft.


Ahh den Source habe ich glatt übersehen.
Vielen Dank! :-)