我需要使用用户凭据通过 ASP.NET Web 应用程序连接到 Outlook。我有哪些选择?
仅供参考:用户使用 Windows 身份验证登录网站。我正在使用 Outlook 2003。
是的。我想我需要连接到交换而不是使用 Outlook COM API。Robert 指出,WebDav 可能是早于 2007 年的交换服务器的方式。还有其他方法可以连接到交换服务器吗?
这是使用 asp.net 使用新电子邮件打开 Outlook 的链接 http://topictolearn.blogspot.com/2011/12/opening-outlook-with-new-e-mail-from.html
听起来您实际上想要连接到 Exchange。对于早于 2007 年的交换,WebDAV 是要走的路。对于 Exchange 2007,它们具有可用的 Web 服务。
Independentsoft为您交换邮箱(和日历)的所有需求提供了一个好的(且便宜的).NET 库。
我将做类似的事情,但我看不出它不起作用的原因:编写一个Outlook 插件,它使用对象远程处理与您正在处理的任何其他服务或工具进行通信。由于它是一个 ASP.NET 应用程序,也许您想使用 Web 服务而不是对象远程处理。
如果 ASP.NET 应用程序尚未运行,是否希望它启动 Outlook?一个 Outlook 进程将由多个用户共享,还是要连接到特定于用户的 Outlook 进程?您希望 ASP.NET 应用程序充当 Outlook 尝试连接的服务器,还是相反?
如果边缘情况很复杂,您可以尝试编写一个 Windows 服务作为两者之间的中介或网关,例如在每台 Outlook 机器上运行并按需启动 Outlook 的服务。
jtacoma:如果 ASP.NET 应用程序尚未运行,您是否希望它启动 Outlook?
不管怎样会更容易。如果 Outlook 没有运行并不重要,那么我们不需要启动它。
一个 Outlook 进程将由多个用户共享,还是要连接到特定于用户的 Outlook 进程?
需要连接到用户特定的 Outlook 进程。
您希望 ASP.NET 应用程序充当 Outlook 尝试连接的服务器,还是相反?
另一种方式。我希望 ASP.NET 连接到 Outlook。
另外:我目前正在查看另一个 asp.net 应用程序,他们正在使用WebDAV request连接到 Outlook 。我不确定这是否是一个好方法。对我来说看起来很乱。
对我来说,这个问题没有意义。Outlook 不是服务器应用程序,它具有用户上下文。如果您要使用 WebDAV、MAPI 或 IMAP 连接到 Exchange Server,会更有意义。
您的解决方案是否要求 Outlook 在 ASP.NET 服务器上运行?如果是这样,您可能需要研究许可影响。我不认为 MS 打算以这种方式自动化 Outlook。我也不认为可以运行多个 Outlook 实例,这可能会带来严重的性能瓶颈问题。如果您可以分享更多详细信息会有所帮助 - 您尝试通过 Outlook 自动执行哪些操作?是否涉及 Exchange 服务器?
Outlook 实际上是通过一组 COM API 很好地公开的……但是,我很好奇您是否需要连接到 Outlook 客户端,或者直接连接到 Exchange 服务器。
您要执行的实际任务是什么?
例如,一旦你导入了 Outlook com DLL,并创建了一个互操作库,做大多数事情就相当简单了:
outlook.Application outlookApp = new outlook.ApplicationClass();
outlook.NameSpace olNameSpace = outlookApp.GetNamespace("MAPI");
olNameSpace.Logon (Credentials);
outlook.ContactItem contact = (outlook.ContactItem)
outlookApp.CreateItem(OlItemType.olContactItem);
contact.FirstName = "Joe";
contact.LastName = "Smith";
contact.Save();
该片段在 Outlook 中创建了一个新联系人。