Преобразование простого текста в HTML в электронной почте Outlook - PullRequest
0 голосов
/ 05 июля 2011

Я сталкиваюсь с ситуацией, чтобы сохранить форматирование простого текстового сообщения электронной почты при отображении его как виртуального простого текста на языке C Sharp.Это делается при получении в Outlook 2007 с помощью VSTO.Приведенный ниже код не выполняет работу, вместо этого он преобразует тело в Times New Roman, размер шрифта 10 и отображает его для пользователя.

string Text = "<html><body><p style=\"font-family:consolas;font-size:88%;\">" + mailItem.Body+ "</p></body></html>";

mailItem.HTMLBody = Text;

mailItem.HTMLBody = Regex.Replace(mailItem.HTMLBody, "(ASA[a-z][a-z][0-9][0-9])", "<a href=\"http://stack.com/eg=$&\">$&</a>");

Как я могу исправить эту проблему?

РЕДАКТИРОВАТЬ:

Ввод:

ASAss87

ASAjj98

этотестовый вход

Выход:

ASAss87 ASAjj98 это тестовый вход

EDIT 2:

Вход:

ASAss87

ASAjj98

this is test input.

Выход:

ASAss87

ASAjj98

   this is test input.

* Перемещение на один или два пробела вперед.Я использую тег.

1 Ответ

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

Исходя из ваших отзывов в комментариях, попробуйте изменить первую строку, чтобы использовать Body вместо HTMLBody:

string Text = "<html><body><p style=\"font-family:consolas;font-size:88%;\">" + mailItem.Body+ "</p></body></html>";

Редактировать: Поскольку обычный текст содержит разрывы строк, возможно, вам следует использовать тег <pre> вместо тега <p>, чтобы он не помещал все в одну строку.

<code>string Text = "<html><body><pre style=\"font-family:consolas;font-size:88%;\">" + mailItem.Body+ "
";

Edit2: в качестве альтернативы вы можете заменить все разрывы строк тегами <br>.

string Text = "<html><body><p style=\"font-family:consolas;font-size:88%;\">" + mailItem.Body.Replace(Environment.NewLine,"<BR>") + "</p></body></html>";
...