我正在使用System.Net.Mail发送ics会议/日历邀请。 ics中的行终止符(0D 0A)正在被接收的电子邮件中的空格(20 20)替换。我用google搜索解决方案,并尝试了下面的代码的一些变体,但似乎没有一个解决这个问题。有什么想法吗?
System.Net.Mail.MailMessage m = new System.Net.Mail.MailMessage();
System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType("text/calendar");
ct.Parameters.Add("method", "REQUEST");
ct.Parameters.Add("name", "meeting.ics");
AlternateView avCal = AlternateView.CreateAlternateViewFromString("<<data>>",ct);
avCal.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
m.AlternateViews.Add(avCal);
答案 0 :(得分:2)
使用
AlternateView htmlView = AlternateView.CreateAlternateViewFromString(body, System.Text.Encoding.UTF8, MediaTypeNames.Text.Html);
答案 1 :(得分:1)
没关系。我的不好......进一步的调试显示问题与编码或邮件部分无关。实际上看起来像是在SQL数据库和应用程序之间的某处乱码。感谢所有发布建议的人!
答案 2 :(得分:0)
您是否尝试使用接受Encoding和MediaType的AlternateView.CreateAlternateViewFromString
重载?我用:
AlternateView htmlView = AlternateView.CreateAlternateViewFromString(
htmlBody, Encoding.UTF8, MediaTypeNames.Text.Html);
它似乎对我有用。