2012-03-29 11 views
5

I`m próby wysłania wiadomości e-mail za pośrednictwem C# i użyć następującego kodu:cyrylica kodowanie podlega w C# maili

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; 
    } 
} 

To działa dobrze, gdy maili otrzymałem w Windows, ale gdy użytkownik próbuje je czytać w MacOS - nagłówek tematu jest błędnie zakodowany. Jeśli ustawiam kodowanie obiektowe na Windows-1251, działa dobrze, ale tylko w przypadku obiektów cyrylicą, a ja też wysyłam język azjatycki ...

Jak mogę wysłać e-maile używając czystego Unicode?

A drugie pytanie - jeśli dodam załącznik do maila, zostanie dodane dodatkowe pliki - "filelist.xml" i "header.htm".

Jak się ich pozbyć?

Thaks!

+0

W podmiotu Outlook wygląda to„Subject: =? UTF-8? B? QnVzaW5lc3MgU3R1ZGlvINC00LvRjyDQv9GA0L7RhNC10YHR = = UTF-8? B? gdC40L7QvdCw0LvQvtCyLCDQstC10LHQuNC90LDRgCAwNi4wNC4xMiDQ = = UTF-8? B? SY4 = =”. Wygląda na to, że tak jak w przypadku błędu jest dzielenie ... – JleruOHeP

+0

Czy użytkownik MacOS może dowiedzieć się, jakie kodowanie komputerów Mac myśli, że tak jest? Z jakiego programu pocztowego korzystają? Jeśli używają poczty internetowej, zasugeruj, aby ustawili kodowanie tekstu w przeglądarce na "auto". –

+0

MAcOS używa automatycznego kodowania i nie pomaga. Próbowali również znaleźć właściwe kodowanie, sprawdzając każdą możliwość - ale to też nie pomaga – JleruOHeP

Odpowiedz

0

O moim drugim pytaniu znaleźć this, a `s pomaga

Do kodowania problemy wybrać, aby wysyłać e-maile z przedmiotów jedynie po angielsku ...

1

Lepszym rozwiązaniem jest utworzenie struktury lub automatyzację że impse do systemu, różne kodowania zgodnie z formatem transmisji:

  • rodzajowego UTF-8
  • izo xxx do cyrillic
  • izo XXY na chiński

i tak dalej.

+0

Czy możesz wyjaśnić, co oferujesz? – JleruOHeP

+0

Oczywiście, proponuję mieć wiele ustawień kodowania zamiast jednego: domyślam się, że wiesz, kiedy system wysyła wiadomość e-mail w języku cyrylicy lub chińskim, lub w USA/EUR, aby można było użyć obudowy przełącznika lub struktury adaptera narzucić różne kodowanie ze względu na odbiornik, mam nadzieję, że jest jasne :) – Gian