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

本文关键字:HTML 转换 文本 电子邮件 Outlook | 更新日期: 2023-09-27 18:01:05

当在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这是测试输入

编辑2:

输入:

ASAss87

ASAjj98

this is test input.

输出:

ASAss87

ASAjj98

   this is test input.

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

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

根据您在评论中的反馈,尝试将第一行更改为使用Body而不是HTMLBody:

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

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

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

第2版:或者,您可以将所有换行符替换为<br>标记。

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