2014-09-22 27 views

回答

4

在2010年EWS没有操作,将返回这个你只有ResolveName操作和expandgroup操作。因此,在EWS中,您可以使用一种解决方法,将想要返回的所有用户放入组中,然后在该组上使用ExpandGroup。

否则,你应该使用LDAP直接使用的System.DirectoryServices例如http://www.infinitec.de/post/2011/10/25/Searching-the-Global-Address-List-C-Edition.aspx或使用Exchange命令行管理程序和Get-邮箱看到http://msdn.microsoft.com/en-us/library/office/ff326159(v=exchg.150).aspx

另外一个解决方法是,如果你有较少的在你的GAL可以使用100个对象“SMTP:” 与resolveName如

 PropertySet cntProp = new PropertySet(BasePropertySet.FirstClassProperties); 
     NameResolutionCollection ncCol = service.ResolveName("SMTP:", ResolveNameSearchLocation.DirectoryOnly, true, cntProp); 
     foreach (NameResolution nc in ncCol) { 
      if(nc.Contact.Alias != null){ 
       Console.WriteLine("Address : " + nc.Mailbox.Address); 
       Console.WriteLine("Alias : " + nc.Contact.Alias); 
       Console.WriteLine("Type : " + nc.Mailbox.MailboxType); 
      } 
     } 

干杯 格伦

+0

谢谢!我结束了使用LDAP。这是否意味着添加到ms excahnge的任何用户都会自动添加到AD? – 2014-09-29 07:38:42

+0

是的,但其方式与您的思维方式相反,例如您需要先创建一个AD帐户,然后该帐户已启用邮件(对邮件启用的联系人,通讯组,邮件启用的公共文件夹来说,这是相同的)。 Active Directory是Exchange的目录服务。 – 2014-09-30 04:33:40

+0

aha。谢谢。我们没有运行excahnge服务器,所以只要ldap返回正确的数据,都没问题。谢谢!! – 2014-10-01 11:33:40

相关问题