是否有任何简单/优雅的方法可以验证SMTP地址是否通过EWS与Exchange邮箱相关联? 提供了管理Exchange用户的凭据。
以下快速而肮脏的解决方案有效:
使用SMTP地址创建ExchangeService作为模拟用户
尝试进行方法调用
当异常消息为" SMTP地址没有与之关联的邮箱时。",SMTP地址与邮箱无关
问题:
没有那么优雅的比较异常消息
每个用户约200-250ms(不是并行)
另一个问题:
GAL中有联系人可能没有邮箱
所以ResolveNames不会有帮助。
答案 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);
}
}
}
干杯 格伦