使用System.Net.Mail.MailMessage发送的电子邮件中的编码不正确

Kri*_*lén 9 c# asp.net email

收到与System.Net.Mail.MailMessage某些收件人一起发送的电子邮件似乎与电子邮件有编码问题.例如charachter ä显示为å¤.我已设置编码属性:

System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
...
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
Run Code Online (Sandbox Code Playgroud)

我还可以做些什么?

更新:

如果我使用该Body属性电子邮件正确显示,但当我使用该AlternateViews属性时,电子邮件显示不正确.

完整代码:

SmtpClient smtpClient = new SmtpClient("some.host.com");
MailMessage msg = new MailMessage();
msg.To.Add("someone@host.com");
msg.From = new MailAddress("name@host.com", "Name Name");
msg.Subject = "Test";

//Displays as ä
//msg.Body = "ä";

// Displays as ä
AlternateView htmlView = AlternateView.CreateAlternateViewFromString("ä", new ContentType(MediaTypeNames.Text.Html));
msg.AlternateViews.Add(htmlView);

smtpClient.Send(msg);
Run Code Online (Sandbox Code Playgroud)

发送到Gmail时,电子邮件会正确显示,但在发送到Exchange服务器时,电子邮件显示不正确.我已经在.NET 3.5和4.5中进行了测试.

Kai*_*mer 9

尝试将内容类型添加到备用视图:

AlternateView htmlView = AlternateView.CreateAlternateViewFromString("ä", new ContentType(MediaTypeNames.Text.Html));
htmlView.ContentType.CharSet = Encoding.UTF8.WebName;
Run Code Online (Sandbox Code Playgroud)