繁体   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