RDO Outlook Redemption从测试服务器访问邮箱

本文关键字:访问 服务器 测试 Outlook Redemption RDO | 更新日期: 2023-09-27 18:22:22

我已经构建了一个web应用程序,可以使用Redemption读取邮箱,我们称之为"custom@domain.com".使用localhost可以很好地工作,但当我部署它时,会出现此异常。

错误System.Runtime.InteropServices.COMException(0x80004005):正在创建具有CLSID的COM组件的实例{IClassFactory的29AB7A12-B531-450E-8F7A-EA94C2F3C05F}失败由于以下错误:80004005。在System.RuntimeTypeHandle.CreateInstance(RuntimeType类型,布尔值publicOnly,布尔noCheck,布尔&canBeCached,RuntimeMethodHandleInternal&ctor,布尔&bNeedSecurityCheck)System.RuntimeType.CreateInstanceSlow(布尔型publicOnly,布尔型skipCheckThis,布尔fillCache)System.RuntimeType.CreateInstanceDefaultCtor(布尔publicOnly,布尔skipVisibilityChecks,布尔skipCheckThis,布尔fillCache)(类型类型,布尔非公共)

我猜我的服务器正在使用其网络用户作为登录邮箱的默认用户,而不是当前访问web应用程序的windows NT用户。如何让服务器或我的RDO代码使用当前NT用户使用带有RDO的应用程序

我已经在服务器上安装了MAPI扩展,并在注册表中注册了dll。

我的RDO代码看起来像这个

 RDOSession Session = null;
        rdoDefaultFolders olFolderInbox = rdoDefaultFolders.olFolderInbox;
        Session = new RDOSession();//this throws the exception above
        Session.LogonExchangeMailbox("username@domain.com", outLookServer);  
         objFolder = Session.GetDefaultFolder(olFolderInbox);

RDO Outlook Redemption从测试服务器访问邮箱

噩梦(或不推荐)解决方案正如德米特里所指出的,我认为问题在于申请的琐碎。然而,将应用程序转换为32位或64位的问题是不可避免的、可怕的连锁反应,即将解决方案中的每个项目转换为使用相同的位,以便应用程序可以使用相同位的MAPI。如果你有其他应用程序使用相同的库和项目,那么这些应用程序也可能会崩溃,所以说起来容易做起来难。事实上,我试过了,它在很多方面破坏了这个项目。。。认为这不值得。

最佳解决方案

对于Exchange Server 2007_SP1及更高版本,我们有一个名为Exchange Web Services MAPI的方便的WebService,它的作用与Redemption相同。。。也许没有那么多,但它能满足你的日常展望需求。请阅读下载中的指南以获取更多信息。

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13480

这对我来说是最好的解决方案,因为它不需要任何应用程序指定一点,也不需要任何特殊说明,而且没有任何漏洞。一个简单的DLL,它可以完成身份验证甚至模拟所需的功能。谁不喜欢网络服务?

样本代码

using ExWs = Microsoft.Exchange.WebServices.Data; 
 ExWs.ExchangeService service = new 
                   ExWs.ExchangeService(ExWs.ExchangeVersion.Exchange2007_SP1);
                    service.Credentials = new   
                   ExWs.WebCredentials("username", "password", "domain");
                    service.AutodiscoverUrl("name@company.com");

教程再次阅读指南或在谷歌上搜索。
其他示例http://omegacoder.com?p=454
使用Exchange Web服务从Exchange下载附件