【发布时间】:2015-07-13 22:17:23
【问题描述】:
在接收使用System.Net.Mail.MailMessage 发送的电子邮件时,某些收件人似乎对电子邮件有编码问题。例如字符 ä 显示为 ä。我已经设置了编码属性:
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
...
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
我还能做什么?
更新:
如果我使用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);
发送到 Gmail 时,电子邮件显示正确,但发送到 Exchange 服务器时,电子邮件显示不正确。我已经在 .NET 3.5 和 4.5 中进行了测试。
【问题讨论】:
-
您使用的是哪个版本的 .NET?
-
能否添加完整的邮件代码,以便我尝试重新创建?