System.Net.Mail заменяет переводы строки в контенте AlternateView пробелами - PullRequest
1 голос
/ 31 января 2011

Я использую System.Net.Mail для отправки приглашения на собрание или календарь. Терминаторы строки (0D 0A) в сообщениях заменяются пробелами (20 20) в полученном письме. Я погуглил решения и попробовал несколько вариантов кода ниже, но ни один из них, кажется, не исправляет это поведение. Есть идеи?

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);

Ответы [ 3 ]

2 голосов
/ 05 июня 2011

использование

AlternateView htmlView = AlternateView.CreateAlternateViewFromString(body, System.Text.Encoding.UTF8, MediaTypeNames.Text.Html);  
1 голос
/ 31 января 2011

Неважно. Мой плохой ... Дальнейшая отладка показала, что проблема не имеет ничего общего с кодировкой или почтовой частью. На самом деле похоже, что перевод строки искажен где-то между базой данных SQL и приложением. Спасибо всем, кто разместил совет!

0 голосов
/ 31 января 2011

Вы пытались использовать перегрузку для AlternateView.CreateAlternateViewFromString, которая принимает кодировку и MediaType?Я использую:

AlternateView htmlView = AlternateView.CreateAlternateViewFromString(
            htmlBody, Encoding.UTF8, MediaTypeNames.Text.Html);

, и мне кажется, что он работает нормально.

...