2012-03-29 10 views
5

I`m versuchen, E-Mail über C# zu senden und verwenden Sie folgenden Code:Kyrillisch Thema Codierung in 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; 
    } 
} 

Es funktioniert gut, wenn empfangen E-Mails in Windows, aber wenn der Benutzer versucht, sie zu lesen in MacOS - Betreff Header ist falsch codiert. Wenn ich Thema-Codierung zu Windows-1251, funktioniert es gut, aber nur für kyrillische Themen, und ich werde auch senden asiatische ...

Wie kann ich E-Mails mit reinem Unicode senden?

Und die zweite Frage - wenn ich einen Anhang zur Mail hinzufügen, wird es mit zusätzlichen Dateien hinzugefügt werden - "filelist.xml" und "header.htm".

Wie man sie los wird?

Thaks!

+0

In Betreff Outlook wie folgt aussieht„Subject: =? UTF-8? B? QnVzaW5lc3MgU3R1ZGlvINC00LvRjyDQv9GA0L7RhNC10YHR? = =? UTF-8? B? gdC40L7QvdCw0LvQvtCyLCDQstC10LHQuNC90LDRgCAwNi4wNC4xMiDQ? = =? UTF-8? B? SY4 =? =“. Es scheint, als wäre der Fehler beim Teilen ... – JleruOHeP

+0

Kann der MacOS-Benutzer herausfinden, welche Kodierung der Mac denkt? Welches E-Mail-Programm verwenden sie? Wenn sie Webmail verwenden, empfehlen sie, die Textkodierung ihres Browsers auf "auto" zu setzen. –

+0

MAcOS verwendet die automatische Kodierung und es hilft nicht. Sie versuchten auch, die richtige Kodierung zu finden, indem sie jede Möglichkeit prüften - aber es hilft auch nicht – JleruOHeP

Antwort

0

über meine zweite Frage gefunden this, und es `s hilft

Für Fragen kodieren ich wähle nur in Englisch Mails mit Themen zu senden ...

1

Die bessere Lösung ist es, eine Struktur oder eine Automatisierung zu erstellen, die auf System unterschiedliche Kodierungen nach dem Empfänger Format impse:

  • generic utf8
  • iso xxx für kyrillisches
  • iso xxy für chinesische

und so weiter.

+0

Können Sie erklären, was bieten Sie an? – JleruOHeP

+0

Sicher, ich schlage vor, dass Sie mehrere Kodierungseinstellungen stattdessen haben: Ich denke, Sie wissen, wenn System eine E-Mail in kyrillischen oder chinesischen senden, oder in US/EUR, so können Sie einen Schalter Fall oder eine Adapterstruktur verwenden eine andere Codierung aufgrund des Empfängers auferlegen, ich hoffe es ist klar :) – Gian