Microsoft Exchange: как разрешить отличительное имя

Как я могу решить это:

/O=CHEESE/OU=FIRST ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN=LHALA1

на адрес электронной почты? Нужно ли использовать веб-службы Exchange?

2 ответа

Решение

Я предполагаю, что это атрибут legacyExchangeDN.

Попробуйте что-то вроде этого:

string dn = "/O=CHEESE/OU=FIRST ADMINISTRATIVE GROUP/" +
        "CN=RECIPIENTS/CN=LHALA1";
string MailAddress=string.Empty;
string user = string.Empty;

using (DirectorySearcher ds = new DirectorySearcher())
{
    ds.Filter = string.Format("(&(ObjectClass=User)(legacyExchangeDN={0}))", 
            dn);
    SearchResultCollection src = ds.FindAll();
    if (src.Count > 1)
    {
        //Oops too many!
    }
    else
    {
        user = src[0].Properties["samAccountName"][0].ToString();
        MailAddress = src[0].Properties["Mail"][0].ToString();
    }
}

Если вы можете выполнить поиск в каталоге по LDAP, вы можете получить запись для этого пользователя, и тогда адрес электронной почты по умолчанию будет в атрибуте mail:

Если это пользователь Exchange с включенным почтовым ящиком, в атрибуте proxyAddresses: адреса контакта или пользователя, не поддерживающего почту, будут также адреса, в атрибуте targetAddress: будут удаленные адреса.

Другие вопросы по тегам