2012-03-29 13 views
5

`m cercando di inviare e-mail tramite C# e utilizzare il seguente codice:cirillico codifica oggetto in C# mail

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

Funziona bene, quando le poste recieved in Windows, ma quando l'utente tenta di leggerli in MacOS - l'intestazione del soggetto ha una codifica errata. Se imposto la codifica del soggetto su Windows-1251, funziona bene, ma solo per i soggetti cirillici e invierò anche asiatiche ...

Come posso inviare e-mail utilizzando puro Unicode?

E la seconda domanda: se aggiungo qualsiasi allegato alla posta, verrà aggiunto con file aggiuntivi - "filelist.xml" e "header.htm".

Come sbarazzarsi di loro?

Thaks!

+0

In tema Outlook assomiglia a questo "Oggetto: =? utf-8? B? QnVzaW5lc3MgU3R1ZGlvINC00LvRjyDQv9GA0L7RhNC10YHR? = =? utf-8? B? gdC40L7QvdCw0LvQvtCyLCDQstC10LHQuNC90LDRgCAwNi4wNC4xMiDQ? = =? utf-8? B? SY4 =? =". Sembra, come l'errore è con la divisione ... – JleruOHeP

+0

Può l'utente MacOS scoprire che cosa la codifica del Mac pensa che sia? Che programma di posta elettronica stanno usando? Se utilizzano la webmail, suggeriscono di impostare la codifica del testo del loro browser su "auto". –

+0

MAcOS utilizza la codifica automatica e non aiuta. Hanno anche provato a trovare la giusta codifica controllando ogni possibilità - ma non aiuta neanche – JleruOHeP

risposta

0

Circa la mia seconda domanda trovato this, e `s aiuta

Per la codifica problemi ho scelto di inviare mail con soggetti in solo inglese ...

1

La soluzione migliore è quella di creare una struttura o un automatismo che impse al sistema differenti codifiche seguente formato ricevitore:

  • utf8 generico
  • iso xxx per cyrillic xxy
  • iso per cinese

e così via.

+0

Puoi spiegare, cosa offri? – JleruOHeP

+0

Certo, ti sto proponendo di avere più impostazioni di codifica invece di una: immagino tu sappia quando il sistema sta inviando un'e-mail in cirillico o in cinese, o in USA/EUR, quindi puoi usare una cassetta degli interruttori o una struttura dell'adattatore per imporre una codifica diversa a causa del ricevitore, spero sia chiaro :) – Gian