Usando el MailMessage
class en .NET 4, encontré un problema hoy que no puedo resolver hasta ahora. Por favor, vea el siguiente código:Visualización errónea del receptor de correo electrónico al usar diéresis alemanas y una coma en el nombre
using (var message = new MailMessage())
{
message.From = new MailAddress(@"[email protected]", "Uwe Keim");
message.Bcc.Add(new MailAddress(@"[email protected]", "Uwe Keim"));
// This fails (see screenshot).
/*1*/ message.To.Add(new MailAddress(@"[email protected]", "Müller, Fred"));
// This succeeds.
/*2*/ message.To.Add(new MailAddress(@"[email protected]", "Fred Müller"));
// This also succeeds.
/*3*/ message.To.Add(new MailAddress(@"[email protected]", "Muller, Fred"));
message.Subject = "Test";
message.Body = "Some text body.";
new SmtpClient().Send(message);
}
Este es un fragmento simple para enviar un mensaje SMTP. Mutuamente tratar las líneas /*1*/
, /*2*/
y /*3*/
, el comportamiento es diferente:
Cada vez que un receptor ("A") el nombre contiene una diéresis alemán (es decir, "a", "O" o "U") y una coma texto (es decir," '), el receptor ve dañado en el mensaje de correo electrónico que recibe:
Como se puede ver en la imagen anterior (tomado de Outlook 2010), hay una críptica' =? utf-8? Q? M = C3 = BCller "en la línea" A: ".
Salir de la coma o eliminar la umlaut alemana corrige esto. He probado tanto Exchange 2003 como hmailserver para obtener el mismo resultado.
Mi pregunta es:
Hay alguien consciente de este comportamiento y tiene una solución a ella?
Actualización 1:
Como se sugiere por el usuario Adam Maras, que puso en marcha Microsoft Network Monitor al enviar el mensaje de correo electrónico.
Para mí, parece que la clase MailMessage
(o la clase SmtpClient
?) Ya lo está haciendo mal:
¿Puede volcar y mirar el mensaje de correo real, tal como se envía y como se recibe, para ambos formatos de nombre de visualización, para buscar diferencias? –
@ AdamMras Para el receptor, ya lo hice y está_ mal. Para la parte de envío, ¿cómo podría hacer esto? Rastreo en el servidor de correo ¿qué se recibe de mi aplicación? –
Eso, o usando algo como Fiddler para ver lo que la aplicación escribe en la conexión. –