我使用下面msdn链接中的代码,它在我的系统中运行得很好,可以获取发件人的电子邮件地址。但是,当我将相同的代码部署到我们的一个dev服务器时,下面的代码行无限期地挂起\冻结而没有任何响应。在跟踪之后,我认为如果发送者对象的属性被访问它,则永远挂起。缓存交换模式在邮箱上“打开”,它在Outlook 2010中运行。我也从outlook手动下载了地址簿,但它没有帮助。我认为这不是代码问题。有人可以帮忙吗?
https://msdn.microsoft.com/en-us/library/office/ff184624.aspx
sender.AddressEntryUserType == Outlook.OlAddressEntryUserType。 olExchangeUserAddressEntry || sender.AddressEntryUserType == Outlook.OlAddressEntryUserType。 olExchangeRemoteUserAddressEntry
答案 0 :(得分:0)
您无法在服务中使用Outlook。没有Office应用程序(包括Outlook)可以在服务中使用。
您的选择是扩展MAPI(C ++或Delphi),Redemption(它包装扩展MAPI并可以从任何语言使用)或EWS。
答案 1 :(得分:0)
Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office在此环境中运行Office时,可能会出现不稳定的行为和/或死锁。
如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。请在Considerations for server-side Automation of Office文章中详细了解相关内容。
Outlook所基于的低级API支持从服务运行代码。您可以使用任何语言来实现任务(C#和VB.NET)。但微软并不正式支持此类解决方案/代码。如果您遇到任何问题,您将独自一人,但托管代码可以作为一个魅力。