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.
*向前移动一两个空格。我正在使用标签。
根据您在评论中的反馈,尝试将第一行更改为使用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>";