[英]Sending Email with the right Encoding. (Outlook gibberish hebrew )
我將希伯來語電子郵件發送到兩個地方,一個是Gmail,另一個是Outlook。
Gmail每次都能正常運行(它們會自動檢測到編碼),但是Outlook以亂碼顯示郵件正文,如果我將顯示編碼從Hebrew(Windows)
更改為Unicode(UTF-8)
(在外表)。
值得一提的是標題和主題都很好。
問題:如何“告訴” Outlook或任何其他程序以使用Unicode(UTF-8)
編碼查看郵件? 無需手動進行。
我嘗試設置編碼,字符集以及其他內容,但我可以使其正常工作。
相關代碼:
public static void SendEmail(MailMessage msg )
{
ContentType mimeType = new System.Net.Mime.ContentType("text/html");
msg.AlternateViews.Add(System.Net.Mail.AlternateView.CreateAlternateViewFromString(msg.Body, mimeType));
SmtpClient smtp = new SmtpClient
{
Host = "mailgw.netvision.net.il",
Port = 25,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(uName,uPass)
};
smtp.Send(msg);
}
這是我嘗試如何使用編碼的幾個示例:
msg.BodyEncoding = Encoding.ASCII;
msg.BodyEncoding = Encoding.UTF8;
msg.BodyTransferEncoding = TransferEncoding.SevenBit;
最后,使它起作用的是備用視圖的配置,如下所示:
AlternateView view = System.Net.Mail.AlternateView.CreateAlternateViewFromString(msg.Body, Encoding.UTF8, "text/html");
msg.AlternateViews.Add(view);
如您所見,我已經設置了MIME(就像以前一樣),但是我還將Encoding設置為UTF-8,這解決了問題。
首先,對HTML正文本身中的所有Unicode字符進行HTML編碼是一個好主意-https: //en.wikipedia.org/wiki/Character_encodings_in_HTML 。
其次,請移植您創建的消息的完整MIME源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.