Outlook电子邮件中的纯文本到HTML转换

时间:2011-07-05 16:00:19

标签: c# html visual-studio-2010 email vsto

在C sharp中将纯文本显示为纯文本时,我面临着保留纯文本电子邮件格式的情况。这是在使用VSTO在Outlook 2007中接收期间完成的。 下面的代码不能完成这项工作,而是将主体转换为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这是测试输入

编辑2:

输入:

ASAss87

ASAjj98

this is test input.

输出:

ASAss87

ASAjj98

   this is test input.

*向前移动一个或两个空格。我正在使用标签。

1 个答案:

答案 0 :(得分:2)

根据您在评论中的反馈,尝试更改第一行以使用Body代替HTMLBody

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

编辑:由于纯文本包含换行符,您可能应该使用<pre>标记而不是<p&gt;标记,以防止它将所有内容放在一行。

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

Edit2:或者,您可以使用<br>标记替换所有换行符。

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