我有两台服务器: S1 是 Exchange2010 S2 是 Exchange 2007
两台服务器在 ActiveDirectory 中的同一个域中。
想法是在 S1 上拥有“服务帐户”,并启用来自两台服务器的用户模拟。我的应用程序正在使用“服务帐户”的凭据,然后开始遍历 smtp 地址列表。它模拟每个 smtp 地址并对该帐户的邮箱内容进行一些处理。
那是一个理论,现在是解决问题的时候了。
我可以作为服务帐户连接并可以访问其邮箱,但是当我尝试访问模拟用户的邮箱时,我收到异常说“SMTP 地址没有与之关联的邮箱”。两台服务器都发生异常。
我开始调试和谷歌搜索可能的原因,我改变了这个:
svc.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, smtpAddress);
进入这个:
svc.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.PrincipalName, smtpAddress);
它的工作原理很奇怪,因为一个月前我只在一台服务器上进行了不同的设置,并且使用 SmtpAddress 枚举有效,而且我的管理员发誓模拟配置完全相同。
现在,如果有人可以向我提供一些提示,说明为什么我不能使用 ConnectingIdType.SmtpAddress 以及我应该怎么做才能使其工作?