验证SMTP地址与邮箱关联

时间:2016-03-30 12:32:18

标签: c# exchange-server exchangewebservices

是否有任何简单/优雅的方法可以验证SMTP地址是否通过EWS与Exchange邮箱相关联? 提供了管理Exchange用户的凭据。

以下快速而肮脏的解决方案有效:
使用SMTP地址创建ExchangeService作为模拟用户
尝试进行方法调用
当异常消息为" SMTP地址没有与之关联的邮箱时。",SMTP地址与邮箱无关

问题:
没有那么优雅的比较异常消息
每个用户约200-250ms(不是并行)

另一个问题:
GAL中有联系人可能没有邮箱 所以ResolveNames不会有帮助。

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用ResolveName操作并搜索您只需要使用smtp为地址添加前缀的目录:Exchange将搜索主要和代理地址,例如

String EmailAddresstoCheck = "info@domain.com";
NameResolutionCollection ncCol = service.ResolveName(("SMTP:" + EmailAddresstoCheck), ResolveNameSearchLocation.DirectoryOnly, true);
if (ncCol.Count == 1)
{
    if (ncCol[0].Contact != null)
    {
        if (EmailAddresstoCheck.ToLower() == ncCol[0].Mailbox.Address)
        {
            Console.WriteLine("Primary SMTP Address of " + ncCol[0].Contact.DisplayName);
        }
        else                             
        {
            Console.WriteLine("Proxy Address of " + ncCol[0].Contact.DisplayName);
            Console.WriteLine("Primary SMTP Address : " + ncCol[0].Mailbox.Address);
        }                    
    }                
}

干杯 格伦