在ASP.Net MVC应用程序中创建Outlook模板(.oft)文件

Arj*_*jun 5 c# outlook asp.net-mvc-4 oft

我要求在ASP.Net MVC4 Web应用程序(使用C#)中下载html模板作为OFT文件.我已经尝试过Microsoft.Office.Interop.Outlook,它在我的本地机器上完美运行但无法在服务器中运行.它需要在服务器中安装Outlook,我还听说在Web服务器的服务器中自动化MS office应用程序并不是一个好习惯.是否可以在不使用MS Office Outlook的情况下创建文件?这样做有免费的图书馆吗?有人知道解决方案,请帮忙.

Dmi*_*nko 1

OFT 文件是具有不同类 GUID 的 MSG 文件。MSG 文件是 OLE 存储 (IStorage) 文件。

由于 MSG 文件格式已记录,因此您可以创建 CLSID 为 {0006F046-0000-0000-C000-000000000046} 而不是 {00020D0B-0000-0000-C000-000000000046} 的 MSG 文件。

您还可以使用Redemption(我是它的作者) - 它的RDO 系列对象可以在服务中使用,您只需要确保安装了具有匹配位数的 Outlook(Redemption 使用 Outlook 安装的 MAPI 系统,而不是Outlook 对象模型,不能在服务中使用)。

VB脚本:

  set Session = CreateObject("Redemption.RDOSession")
  set Msg = Session.CreateMessageFromMsgFile("c:\Temp\TestMsg.msg")
  Msg.Body = "This is a test template"
  Msg.Subject = "Template"
  Msg.Save
  Msg.SaveAs "c:\Temp\TestTemplate.oft", olTemplate
Run Code Online (Sandbox Code Playgroud)

C#(我突然想到了):

  Redemption.RDOSession rSession = new Redemption.RDOSession();
  Redemption.RDOMail Msg = rSession.CreateMessageFromMsgFile("c:\Temp\TestMsg.msg");
  Msg.Body = "This is a test template";
  Msg.Subject = "Template";
  Msg.Save();
  Msg.SaveAs("c:\Temp\TestTemplate.oft", Redemption.rdoSaveAsType.olTemplate);
Run Code Online (Sandbox Code Playgroud)