2010-11-15 15 views
6

Sto creando un Corpo Email tramiteCome faccio a impostare la codifica su AlternateView

using (var streamWriter = new StreamWriter(fooFileName, false, Encoding.UTF8)) 
{ 
    streamWriter.Write(fooMessage); 
} 

ora sto consumando questo file con

var mailMessage = new System.Net.Mail.MailMessage 
{ 
    From = fooSender, 
    To = 
    { 
     fooRecipient 
    }, 
    Subject = fooSubject, 
    SubjectEncoding = Encoding.UTF8, 
    BodyEncoding = Encoding.UTF8 
}; 
// fooMediaType can be 
// - System.Net.Mime.MediaTypeNames.Text.Html 
// - System.Net.Mime.MediaTypeNames.Text.Plain 
var alternateView = new System.Net.Mail.AlternateView(fooFileName, fooMediaType); 
mailMessage.AlternateViews.Add(alternateView); 

Se sto utilizzando non dieresi, tutto funziona bene, ma non appena uso le dieresi nel mio alternateView, si rompono.

Quindi, come posso impostare una sorta di codifica su alternateView che tutto funzioni?

risposta

13
var alternateView = new AlternateView(fooFileName, fooMediaType) 
{ 
     ContentType = 
     { 
      CharSet = Encoding.UTF8.WebName 
     } 
}; 
+1

Molto utile! Potrebbe essere meglio usare 'Encoding.UTF8.HeaderName' perché il parametro charset verrà aggiunto all'intestazione Content-Type. In questo caso 'Encoding.UTF8.WebName' e' Encoding.UTF8.HeaderName' restituiscono entrambi lo stesso valore 'utf-8', quindi non importa. –

Problemi correlati