C# 使用正确的编码发送电子邮件。(希伯来语胡言乱语)

C# 使用正确的编码发送电子邮件。(希伯来语胡言乱语),c#,.net,email,encoding,outlook,C#,.net,Email,Encoding,Outlook,我正在向两个地方发送一封希伯来文电子邮件,一个是Gmail,另一个是Outlook 问题是: Gmail每次都工作正常(他们会自动检测编码),但是Outlook会以乱码显示正文,如果我将显示编码从Hebrew(Windows)更改为Unicode(UTF-8)(在Outlook中打开邮件显示时),我可以修复它 值得一提的是,标题和主题都很好 问题:如何“告诉”Outlook或任何其他程序使用Unicode(UTF-8)编码查看邮件?无需手动操作 我尝试设置编码、字符集等等,但我可以让它工作 代码

我正在向两个地方发送一封希伯来文电子邮件,一个是Gmail,另一个是Outlook

问题是: Gmail每次都工作正常(他们会自动检测编码),但是Outlook会以乱码显示正文,如果我将显示编码从
Hebrew(Windows)
更改为
Unicode(UTF-8)
(在Outlook中打开邮件显示时),我可以修复它

值得一提的是,标题和主题都很好

问题:如何“告诉”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;

首先,在HTML正文中对所有Unicode字符进行HTML编码是一个好主意


其次,请输入您创建的消息的完整MIME源

最后,使其工作的是备选视图的配置,如下所示:

AlternateView view = System.Net.Mail.AlternateView.CreateAlternateViewFromString(msg.Body, Encoding.UTF8, "text/html");
msg.AlternateViews.Add(view);

正如您所看到的,我已经设置了MIME(正如我之前所做的),但我也将编码设置为UTF-8,这是解决问题的方法。

尝试设置编码,char set
您到底是如何设置的?