2010-11-06 18 views
6

¿Soy yo o hay un error en la clase MailAddress en System.Net.Mail?¿Cómo envío un correo electrónico a una dirección con un guion?

Este código siempre generará un excpetion:

MailMessage mail = new MailMessage(); 
mail.From = new MailAddress("[email protected]");  
mail.To.Add("[email protected]"); 

mail.Subject = "Test email" 
mail.IsBodyHtml = true; 
mail.Body = "<b>Does not work</b>"; 

//Connect to server and send message.    
SmtpClient smtp = new SmtpClient(); 
smtp.Host = "mailserver.me.com"; 
smtp.Send(mail); 

La excepción que consigo es la siguiente:

System.FormatException: The specified string is not in the form required for an 
e-mail address. 

Sin embargo, de acuerdo con wiki, un guión es un carácter válido en la parte local.

¿Alguien sabe una forma de utilizar las clases System.Net.Mail para enviar un correo electrónico a alguien con un guion en la dirección de correo electrónico?

+1

¿Esto es un problema de codificación? –

+0

@Mitch Wheat: buen comentario. Estaba pensando "¿alguien más puede replicar esto?" –

Respuesta

2

¿Estás seguro? Funciona para mí (corté y pegué el código reemplazando su servidor de correo ficticio con mi servidor de correo real.) Acabo de recibir notificaciones de entrega de que el mensaje a [email protected] no se puede entregar.

Como tiene un mensaje de excepción, creo que es real. ¿Es posiblemente un problema de codificación?

+3

Gracias por su comentario ... Me hizo mirar un poco más profundo ... Parece que cada dirección de correo electrónico que estaba leyendo desde el DB tenía al final, arrojando el error. – thorkia

+0

@thorkia: Ah, está bien. Bueno. Tenía que ser algo así. – jason

0

Esta excepción puede deberse a que tiene una dirección de correo electrónico no válida en el atributo from del elemento smtp del archivo app.config. Aunque eso causaría cualquier intento de enviar un correo electrónico para lanzar una excepción, independientemente de si la dirección de correo electrónico to contenía un guión o no. Sin embargo, vale la pena verificar lo que se especifica en el elemento mailSettings de app.config.

+0

¿Está diciendo que la configuración de app.config anula la configuración del código (como @thorkia codificado, arriba)? –

+0

@ Pure.Krome - No, no estoy diciendo eso. Pero si hay una dirección de correo electrónico no válida en el atributo 'de', generará la excepción, aunque al parecer, posteriormente establezca una dirección de correo electrónico válida 'de' a través del código. Si por error, @thorkia tenía, por ejemplo, from = "me" en su app.config, entonces habría generado la excepción. En este caso, la excepción se habría lanzado en el momento en que se creó el objeto MailMessage, es decir, antes de que se ejecute el código para establecer la dirección de correo electrónico 'de' válida. –

Cuestiones relacionadas