簡體   English   中英

使用正確的編碼發送電子郵件。 (前景亂碼希伯來語)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM