C# 试图将Outlook邮件项目另存为HTML格式的邮件,但打开时为纯文本

C# 试图将Outlook邮件项目另存为HTML格式的邮件,但打开时为纯文本,c#,outlook,format,interop,C#,Outlook,Format,Interop,我有一个引用MicrosoftOffice16.0对象库的c#类文件 它创建一个Outlook邮件项,格式化为HTML,并将MSG文件保存在本地。问题是,当我打开保存的文件时,Outlook将其视为纯文本。下面是我所看到的一个例子: oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem); oMsg.BodyFormat = Outlook.OlBodyFormat.olFormatHTML; oMsg.HTMLBody = @"<b&g

我有一个引用MicrosoftOffice16.0对象库的c#类文件

它创建一个Outlook邮件项,格式化为HTML,并将MSG文件保存在本地。问题是,当我打开保存的文件时,Outlook将其视为纯文本。下面是我所看到的一个例子:

oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem);
oMsg.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
oMsg.HTMLBody = @"<b>Test</b>";
...
oMsg.SaveAs(Path.Combine(path, filename), Outlook.OlSaveAsType.olMSG);
oMsg=oApp.CreateItem(Outlook.OlItemType.olMailItem);
oMsg.BodyFormat=Outlook.OlBodyFormat.olFormatHTML;
oMsg.HTMLBody=@“测试”;
...
oMsg.SaveAs(Path.Combine(Path,filename),Outlook.OlSaveAsType.olMSG);
当我打开保存的文件时,测试不是粗体的,消息显示的格式是纯文本。有什么我遗漏的吗


我还应该补充一点,当我将此邮件发送到Outlook收件箱(而不是保存)时,它可以正常工作。我不确定MSG文件有什么问题。

我对以下测试脚本没有问题(我使用Outlook Spy运行它):

set-oMsg=Application.CreateItem(olMailItem)
oMsg.BodyFormat=olFormatHTML
oMsg.HTMLBody=“测试”
oMsg.保存
oMsg.SaveAs“c:\temp\testhtml.msg”,olMSG

在调用SaveAs之前是否调用oMsg.Save?我刚刚尝试过,也出现了相同的行为。文本未格式化,在“文本格式”选项卡下选择纯文本。我知道Save()在我的草稿文件夹中放置了一个正确的HTML副本。谢谢你的帮助,至少我知道代码还可以。我这边有点不对劲。它在运行,但仍然让我有问题中描述的行为。本地保存的结果MSG文件是纯文本,但“我的草稿”文件夹中的文件是HTML。我不知道它为什么会这样,但我可以找到一个解决办法,因为它在草稿文件夹中。谢谢如果安装了OutlookSpy,请尝试打开MSG文件(单击OpenImsGositing)并检查PR_RTF_COMPRESSED是否包含RTF包装的HTML。
set oMsg = Application.CreateItem(olMailItem)
oMsg.BodyFormat = olFormatHTML
oMsg.HTMLBody = "<b>Test</b>"
oMsg.Save
oMsg.SaveAs "c:\temp\testhtml.msg", olMSG