validate new net address asp.net vb.net asp.net-3.5 email-validation email-address

asp.net - new - Verifique que la dirección de correo electrónico sea válida para System.Net.Mail.MailAddress



validate email net core (5)

Actualmente, para evitar que se generen errores debido a direcciones de correo electrónico no válidas, hago lo siguiente:

Dim mailAddress As MailAddress Try mailAddress = New MailAddress("testing@[email protected]") Catch ex As Exception ''Invalid email End Try

Sin embargo, en lugar de depender de Try..Catch , ¿hay alguna manera de validar que la dirección de correo electrónico sea 100% válida para el tipo MailAddress ?

Sé que hay muchas funciones de expresiones regulares para validar correos electrónicos, pero estoy buscando la función que el tipo de MailAddress usa para validar sus direcciones.


Algunos personajes son válidos en algunos proveedores de servicios, ¡pero lo mismo no está en otros! El SmtpClient no sabe nada sobre los proveedores de servicios. Por lo tanto, tiene que filtrar lo menos posible. La Wikipedia es muy mencionada sobre los Standers.

La validación de MailAddress se menciona en MailAddress . Por lo tanto, creo que puede verificar esas validaciones antes de inicializar MailAddress .


Desafortunadamente, no hay MailAddress.TryParse método MailAddress.TryParse .

Su código es la forma ideal de validar las direcciones de correo electrónico en .Net.



No es realmente una respuesta a esta pregunta per se, pero en caso de que alguien lo necesite, escribí una función C # para validar las direcciones de correo electrónico utilizando este método.

FixEmailAddress("[email protected]")

devuelve "[email protected]"

FixEmailAddress("wa@[email protected],[email protected],asdfdsf,[email protected]")

devuelve "[email protected],[email protected]"

Proceso las listas de direcciones de correo electrónico de esta manera porque una lista de correos separados por comas es un parámetro válido para MailAddressCollection.Add ()

/// <summary> /// Given a single email address, return the email address if it is valid, or empty string if invalid. /// or given a comma delimited list of email addresses, return the a comma list of valid email addresses from the original list. /// </summary> /// <param name="emailAddess"></param> /// <returns>Validated email address(es)</returns> public static string FixEmailAddress(string emailAddress) { string result = ""; emailAddress = emailAddress.Replace(";",","); if (emailAddress.Contains(",")) { List<string> results = new List<string>(); string[] emailAddresses = emailAddress.Split(new char[] { '','' }); foreach (string e in emailAddresses) { string temp = FixEmailAddress(e); if (temp != "") { results.Add(temp); } } result = string.Join(",", results); } else { try { System.Net.Mail.MailAddress email = new System.Net.Mail.MailAddress(emailAddress); result = email.Address; } catch (Exception) { result = ""; } } return result;

}


Si necesita asegurarse de que una dirección de correo electrónico determinada sea válida de acuerdo con los estándares IETF, que la clase MailAddress parece seguir solo parcialmente, en el momento de escribir este documento, le sugiero que consulte EmailVerify.NET , a .NET. componente que puede integrar fácilmente en sus soluciones. No depende de las expresiones regulares para realizar su trabajo, sino que se basa en una máquina de estado finito interno, por lo que es muy, muy rápido.

Descargo de responsabilidad: soy el desarrollador principal de este componente.