2012-11-19 102 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

相關問題