2012-11-19 65 views
6

我需要复制Outlook功能/功能性发送一些任务请求给某人(see here),但从网络服务器发送邮件使用ASP.NET C#并没有Outlook安装在网络服务器上(因此使用Outlook自动化是不可能的)。如何通过邮件发送Outlook任务请求而不使用Outlook?

我已经检查了做这件事的可能性,似乎将任务发送给某人的一种常见方式是生成iCalendar格式的.ics文件,并将该文件包含到邮件中(see this stackoverflow question)。

它的伟大工程,但没有世界观发送任务的等价:

  • 活动(VEVENT)有一个开始日期和结束日期(如任务),但没有“完成”字段(这使因为它是一个事件,而不是任务)。
  • Todos(VTODO)只有截止日期,没有开始日期或结束日期and it is not supported by outlook

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

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

+0

你得到任何解决办法? –

回答

0

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

但是,您看过Exchange Web Services吗?它提供了一个完整的对象模型来与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

+0

有两个问题:1)是否需要安装Microsoft Exchange?或者它可以作为独立的库,我可以添加到任何C#项目? 2)我在您提交的页面中看到许多对Exchange 2010和Exchange 2007的引用,该解决方案是否可以将任务请求发送给使用Outlook 2003的用户? – tigrou

+0

我并不完全确定,但我相信EWS是您交换服务器安装的一部分。我不确定向后兼容outlook 2003,对不起。 – jeroenh

相关问题