Найти основной SMTP-адрес, используя дополнительный адрес электронной почты с EWS - PullRequest
3 голосов
/ 19 июня 2011

При использовании веб-служб Exchange в Exchange Server 2010 мне нужно найти основной SMTP-адрес пользователя, используя дополнительный адрес электронной почты.

Я пытаюсь использовать ExchangeService.ResolveName (emailAddress). Но ResolveName (), похоже, не сопоставляет вторичные адреса электронной почты с первичными. Если я передаю имя и фамилию пользователя, он находит основной адрес. Но мне нужно иметь возможность сопоставлять, используя вторичные электронные письма.

Я что-то не так делаю? Как мне сопоставить дополнительный адрес с основным?

Спасибо,

Tedderz

Ответы [ 2 ]

2 голосов
/ 21 февраля 2012

Вам необходимо вызвать ResolveName со строкой вида smtp:someone@example.com. Я не уверен, будет ли ResolveName когда-либо возвращать что-либо кроме основного SMTP-адреса при вызове, как это. Но я проверил тип почтового ящика на всякий случай. Следующий код, кажется, работает для меня.

private string GetPrimarySmtpAddress(ExchangeService service, string email)
{
    foreach (NameResolution resolution in service.ResolveName("smtp:" + email))
    {
        if (resolution.Mailbox.MailboxType == MailboxType.Mailbox)
        {
            return resolution.Mailbox.Address;
        }
    }
    return "";
}

Конечно, при необходимости добавьте обработку ошибок.

2 голосов
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...