活动目录和交换服务器 - 提取电子邮件地址

时间:2014-04-15 11:37:57

标签: active-directory exchange-server

我有一个程序尝试以下列优先级从AD中提取电子邮件地址:mail,email或userPrincipalName属性

拥有Microsoft Exchange服务器的客户端告诉我正在提取错误的电子邮件地址,即在userPrincpalName中(显示在windows用户属性选项卡帐户,字段'用户登录名')。

在AD资源管理器中,我已经证明不会返回邮件和电子邮件属性,因此软件会故障转移到userPrincipalName。

客户端已显示特定AD访问帐户已勾选以下权限:

阅读帐户限制 阅读交换信息 阅读交换个人信息 阅读一般信息

但是,我们没有收到我们在Windows用户属性“常规”选项卡中看到的电子邮件地址,AD中返回的电子邮件字段。我们在AD Explorer中没有收到邮件/电子邮件AD属性。

我没有在相关用户的AD资源管理器中找到正确的电子邮件地址。

任何人都可以帮助我更好地理解这一点,或者我们如何能够获得正确的属性。

1 个答案:

答案 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();
    }

希望这能回答你的问题。