在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.
*向前移动一个或两个空格。我正在使用标签。
答案 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>";