2012-03-29 19 views
5

yo estoy tratando de enviar correo electrónico a través de C# y utilizar el siguiente código:sujeto cirílico codificación en C# mails

public static bool SendSMTPMail(string smtphost, int smtpport, string smtplogin, string smtppassword, string from, string to, string subject, string body, bool isHtml) 
{ 
    try 
    {    
    using (MailMessage message = new MailMessage(from, to, subject, body)) 
    { 
     message.IsBodyHtml = isHtml; 
     message.SubjectEncoding = System.Text.Encoding.UTF8; 
     message.BodyEncoding = System.Text.Encoding.UTF8; 

     SmtpClient mailClient = new SmtpClient(smtphost, smtpport); 
     mailClient.EnableSsl = false; 
     mailClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
     mailClient.Credentials = new NetworkCredential(smtplogin, smtppassword); 

     mailClient.Send(message); 
     return true; 
    } 
    } 
    catch 
    { 
    return false; 
    } 
} 

Funciona bien, cuando electrónicos de recibió en Windows, pero cuando el usuario intenta leerlos en MacOS: el encabezado del asunto tiene una codificación incorrecta. Si configuro la codificación de sujeto en Windows-1251, funciona bien, pero solo para sujetos cirílicos, y también enviaré mensajes asiáticos ...

¿Cómo puedo enviar correos electrónicos usando Unicode puro?

Y la segunda pregunta: si agrego cualquier archivo adjunto al correo, se agregarán archivos adicionales - "filelist.xml" y "header.htm".

¿Cómo deshacerse de ellos?

¡Thaks!

+0

En Outlook sujeto se parece a esto "Asunto: =? utf-8? B? QnVzaW5lc3MgU3R1ZGlvINC00LvRjyDQv9GA0L7RhNC10YHR? = =? UTF-8? B? gdC40L7QvdCw0LvQvtCyLCDQstC10LHQuNC90LDRgCAwNi4wNC4xMiDQ? = =? UTF-8? B? SY4 =? =". Parece que el error es al dividir ... – JleruOHeP

+0

¿Puede el usuario de MacOS descubrir qué codificación cree que es la Mac? ¿Qué programa de correo electrónico están usando? Si utilizan webmail, sugiera que configuren la codificación de texto de su navegador como "auto". –

+0

MAcOS utiliza codificación automática, y no ayuda. También intentaron encontrar la codificación correcta comprobando todas las posibilidades, pero tampoco ayuda a – JleruOHeP

Respuesta

0

Sobre la segunda pregunta encontraron this, y `s ayuda

Para codificar los problemas que decido enviar correos con los sujetos sólo en Inglés ...

1

La mejor solución es la creación de una estructura o una automatización que impse al sistema diferentes codificaciones siguiendo el formato del receptor:

  • utf8 genérica
  • xxx iso para cirílico XXY
  • iso para chino

y así sucesivamente.

+0

¿Puede explicarme qué ofrece? – JleruOHeP

+0

Claro, le propongo que tenga varias configuraciones de codificación en lugar de una: Supongo que sabe cuándo el sistema está enviando un correo electrónico en cirílico o en chino, o en US/EUR, para que pueda usar una caja de conmutadores o una estructura de adaptador para imponer una codificación diferente debido al receptor, espero que esté claro :) – Gian

Cuestiones relacionadas