使用Exchange Server 2010上的Exchange Web Services,我需要使用次要电子邮件地址查找用户的主SMTP地址。
我尝试使用ExchangeService.ResolveName(emailAddress)。但是,ResolveName()似乎无法将次要电子邮件地址与主要电子邮件地址匹配。如果我传递用户的名字和姓氏,它会找到主地址。但是,我需要能够使用次要电子邮件进行匹配。
我做错了什么吗?如何将次要地址与主地址匹配?
谢谢,
Tedderz
您需要使用形如smtp:someone@example.com
的字符串调用ResolveName。我不确定在这种情况下,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 "";
}
根据需要添加错误处理。