我有一个程序尝试以下列优先级从AD中提取电子邮件地址:mail,email或userPrincipalName属性
拥有Microsoft Exchange服务器的客户端告诉我正在提取错误的电子邮件地址,即在userPrincpalName中(显示在windows用户属性选项卡帐户,字段'用户登录名')。
在AD资源管理器中,我已经证明不会返回邮件和电子邮件属性,因此软件会故障转移到userPrincipalName。
客户端已显示特定AD访问帐户已勾选以下权限:
阅读帐户限制 阅读交换信息 阅读交换个人信息 阅读一般信息
但是,我们没有收到我们在Windows用户属性“常规”选项卡中看到的电子邮件地址,AD中返回的电子邮件字段。我们在AD Explorer中没有收到邮件/电子邮件AD属性。
我没有在相关用户的AD资源管理器中找到正确的电子邮件地址。
任何人都可以帮助我更好地理解这一点,或者我们如何能够获得正确的属性。
答案 0 :(得分:1)
您要寻找的字段名为" proxyAddresses"这是一个字符串的集合,显示为" SMTP:john.doe@example.com; smtp:j.doe@example.com"。
这意味着主要的Exchange地址是john.doe@example.com,其他的(在本例中,只有j.doe但你可以拥有更多地址)是次要的。
你可以这样使用它们:
/// <summary>
/// Gets the exchange emails.
/// </summary>
/// <returns></returns>
private IEnumerable<string> GetExchangeEmails()
{
return (from object property in Entry.Properties["proxyAddresses"] select property.ToString()).ToList();
}
希望这能回答你的问题。