C# VSTO插件 - 将纯文本电子邮件转换为HTML

3
我们为Outlook 2010/2007编写了一个VSTO插件。在某个时候,我们的插件必须从功能区控件将纯文本电子邮件转换为HTML。这会导致Outlook出现一些奇怪的行为:
  1. 我们使用MailItem COM对象
  2. 我们设置MailItem.HTMLBody
  3. 电子邮件被转换为HTML,但字体却是10pt的新罗马字体
Outlook的默认字体是Calibri 11pt,这使得我们的电子邮件转换对用户来说看起来很奇怪。当您使用Outlook中现有的按钮转换为HTML时,它按预期工作,但使用我们插件的按钮时则不是。
所以我们尝试了以下方法:
  • 提前设置MailItem.BodyFormat
  • <span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'></span>包装我们的电子邮件文本(我们从查看新Outlook电子邮件的源代码中得到了这个想法)
<span>标签包装在电子邮件正文周围可以更改字体为Calibri,但字体大小仍保持在10pt...
有更好的方法吗?还有其他解决方法吗?
编辑,可行代码:
        if (_mailItem.BodyFormat != OlBodyFormat.olFormatHTML)
        {
            _mailItem.GetInspector.CommandBars.ExecuteMso("MessageFormatHtml");
        }

_mailItem是Microsoft.Office.Interop.Outlook.MailItem。

1个回答

3

您有两种方式:

  1. 通过 Inspector.CommandBars.ExecuteMso("MessageFormatHtml") 编程方式“点击”内置按钮。
  2. 关闭邮件查看器,转换消息格式,保存电子邮件并重新打开它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接