如何在没有Outlook的情况下通过邮件发送Outlook任务请求?
我需要复制Outlook
function/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