如何在没有Outlook的情况下通过邮件发送Outlook任务请求?

我需要复制Outlookfunction/function以将某些任务请求发送给某人( 请参阅此处 ),但使用ASP.NET C#从Web服务器发送邮件,并且不在Web服务器上安装Outlook(因此无法使用Outlook自动化)。

我已经检查了执行此操作的可能性,似乎将任务发送给某人的常见方法是生成iCalendar格式的.ics文件,并将该文件包含在邮件中( 请参阅此stackoverflow问题 )。

它工作得很好,但是outlook没有发送任务的等价性:

  • 事件(VEVENT)有一个开始日期和结束日期(如任务)但没有“完成”字段(这是有意义的,因为它是一个事件,而不是一个任务)。
  • Todos(VTODO)只有截止日期,没有开始日期或结束日期, 并且outlook不支持它 。

我检查了Outlook在包含任务请求的邮件中确切发送的content-type:application/ms-tnef :它包含一个winmail.dat文件( content-type:application/ms-tnef )编码为Base64 。 在该文件(这是一个二进制文件)中,有一个对IPM.TaskRequest的引用,这似乎是我需要的。

我检查了网络并找到了一些TNEF解析器,但我需要oposite: 从C#代码生成一个包含任务请求的TNEF文件 。 我想知道是否有办法做到这一点。 使用库(免费或不免费)不是问题。

即使在Web服务器上安装了outlook,服务器上的Outlook自动化通常也是一个坏主意。

但是,您是否查看了Exchange Web服务? 它提供了一个完整的对象模型来与outlook集成。 显然它与outlook(不像ics)有关,但它似乎适合你的用例。

EWS概述: http : //msdn.microsoft.com/en-us/library/exchange/dd877045%28v=exchg.140%29.aspx

使用任务: http : //blogs.msdn.com/b/dhruvkh/archive/2012/04/06/working-with-tasks-using-exchange-web-services.aspx