Um die E-Mail-Adresse zu validieren, geben wir MailAddress Class weiter. Diese E-Mail-Adresse a @ bbb..com scheint jedoch gemäß der MailAddress-Klasse gültig zu sein.Ist es "a @ bbb..com" eine gültige E-Mail-Adresse ?, Gemäß MailAddress-Klasse ist es
MSDN besagt, dass dies sind gültige E-Mail-Adresse:
Die Mailaddress-Klasse unterstützt die folgenden E-Mail-Adressformate:
- Eine einfache Adressformat von user @ host. Wenn ein DisplayName nicht festgelegt ist, wird das Mail-Adressformat generiert.
- Ein Standardformat für den Anzeigenamen von "Anzeigename". Wenn ein DisplayName festgelegt ist, ist dies das generierte Format.
- Um den Benutzernamen, Hostname für "Anzeigename" user @ host, werden spitze Klammern hinzugefügt, wenn diese nicht enthalten sind.
- Die Anführungszeichen werden um den Anzeigenamen für den Anzeigenamen hinzugefügt, wenn diese nicht enthalten sind.
- Unicode-Zeichen werden im DisplayName unterstützt. Eigentum.
- Ein Benutzername mit Anführungszeichen. Zum Beispiel "Benutzername" @host.
- Aufeinanderfolgende und abschließende Punkte in Benutzernamen. Beispiel: user ... name .. @ host.
- In Klammern gesetzte Domänenliterale. Beispielsweise, .
- Kommentare. Zum Beispiel (Kommentar) "Anzeigename" (Kommentar) < (Kommentar) Benutzer (Kommentar) @ (Kommentar) Domäne (Kommentar)> (Kommentar). Kommentare werden vor der Übertragung entfernt.
von https://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress%28v=vs.110%29.aspx genommen.
Beachten Sie, dass 7 Kugel ist in der Nähe dieses Problems, aber es besagt, dass die aufeinander folgenden Punkte im Benutzernamen nicht in der Domäne angezeigt werden können.
Andere Ressourcen wie http://isemail.info (http://isemail.info/[email protected]) besagt, dass dies keine gültige E-Mail-Adresse ist.
Was denken Sie, es sollte das richtige Verhalten sein ?. Hier ist ein Poc.
//C# Example
var emailAddress = @"[email protected]";
Func<string,bool> validEmail = (email)=>
{
try
{
var address = new System.Net.Mail.MailAddress(email);
return true;
}catch (Exception ex)
{
return false;
}
};
Assert.IsTrue(validEmail(emailAddress));
//using NUnit.Framework
//O2Ref:nunit.framework.dll
Parsing E-Mail-Adressen ist schwer. –
@ DanielA.White absolut :) –
Warum nicht eine Regexp verwenden? – Zee