我正在通过调用ExchangeService来分析用户的Exchange邮箱。此工具需要定期在客户端环境中运行,并通过向Windows用户登录时连接到Exchange服务的服务省略凭据。我可以成功地循环文件夹和项目。
现在我想要检索有关正在使用的邮箱的信息。用户名和(主要)电子邮件应该足够了。但我找不到任何有关如何检索此信息的信息。每个示例都为用户提供凭证,或者从电子邮件地址自动发现Exchange服务。我不希望用户配置任何东西: - )。
有什么建议吗?
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Url = new Uri("https://FQDN/EWS/Exchange.asmx");
???
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.SentItems, new ItemView(100)); // this works
我尝试过使用service.ResolveName,但即使使用Environment.UserName也可以提供多个答案
答案 0 :(得分:0)
执行此操作的最简单方法是使用ConvertId操作并在Mailbox元素中使用无法解析的地址(blah@blah.com始终适用于我)。 Exchange应将此转换为响应中的实际邮箱。例如
Folder chk = Folder.Bind(service, WellKnownFolderName.Inbox);
AlternateId aiItem = new AlternateId();
aiItem.Mailbox = "Blah@Blah.com";
aiItem.UniqueId = chk.Id.UniqueId;
aiItem.Format = IdFormat.EwsId;
String CasServer = service.Url.Host.ToString();
AlternateIdBase caid = service.ConvertId(aiItem, IdFormat.HexEntryId);
Console.WriteLine(((AlternateId)caid).Mailbox);
干杯 格伦