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

时间:2016-01-19 12:14:19

标签: c# asp.net-mvc-4 outlook oft

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

1 个答案:

答案 0 :(得分:1)

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

由于MSG文件格式为documented,您可以创建一个CLSID为{0006F046-0000-0000-C000-000000000046}的MSG文件,而不是{00020D0B-0000-0000-C000-000000000046}。

您也可以使用Redemption - 其RDO family of objects可以在服务中使用,您只需要确保安装了具有匹配位的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

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);