2010-12-16 12 views
8

El siguiente código genera una excepción de "un carácter no válido se encontró en la cabecera del correo:. 'Ñ'":.Net MailAddress falla en la "ñ" en la dirección de correo electrónico

string email = "ñ@c.com"; 
MailAddress to = new MailAddress(email); 

La dirección real I' Me encuentro con esto es una dirección válida, pero la clase MailAddress arroja un error cada vez que intento y lo uso.

+0

Hmm ... no se puede reproducir en [Ideone] (http://ideone.com/TMd9s). No se lanza ninguna excepción – Cameron

+1

@Cameron: se compilará, no se ejecutará (arroja una excepción de tiempo de ejecución). –

+0

@Noon: según Ideone también se está ejecutando con éxito – Cameron

Respuesta

5

Sí, interesante. Según Wikipedia: Email Address, se define estrictamente como un subconjunto de ASCII, por lo que técnicamente no es válido.

Parece que simplemente no puedes enviar correos electrónicos a esa dirección desde .NET (usando las clases de System.Net.Mail, de todos modos).

+0

Sí. [RFC 5322 secciones 3.2.3 y 3.2.4] (http://tools.ietf.org/html/rfc5322#section-3.2.3) estandariza los caracteres permitidos en átomos y cadenas entre comillas, respectivamente, y los conjuntos de caracteres legales para ambos se especifican como subconjuntos de US-ASCII. –

+0

Parece que en un futuro próximo se extenderá a Unicode, pero por ahora, parece ser solo ASCII. ¡Gracias! – Dugan

+0

Solo para tener en cuenta (en caso de que alguien más se tope con esto), a partir de .NET 4.0, parece que ñ está permitido en la dirección. –

Cuestiones relacionadas