EWS:来自日历 FolderId 的邮箱地址,这可能吗?
Posted
技术标签:
【中文标题】EWS:来自日历 FolderId 的邮箱地址,这可能吗?【英文标题】:EWS: Mailbox address from a Calendar FolderId, is it possible? 【发布时间】:2016-04-12 17:35:46 【问题描述】:我已存储 Calendar FolderIds 以报告用户有权访问的日历事件。我正在通过 c# (using Microsoft.Exchange.WebServices
) 使用 Exchange Web 服务
这些日历可以与经过身份验证的用户的邮箱、共享邮箱、模拟|委托邮箱或公共邮箱相关联。现在我想从 FolderId 转到邮箱地址。
理想情况下会有一个函数来
string address = getMailboxAddress(new FolderId("AAJk...AA="));
【问题讨论】:
什么是邮箱地址? Exchange 有一个邮箱对象。我想要来自Mailbox.Address.ToString()
的 smtp 地址(“example@example.com”)。
【参考方案1】:
如果您拥有 FolderId,那么您拥有的是此 https://msdn.microsoft.com/en-us/library/ee217297(v=exchg.80).aspx 的 EWS 版本,这意味着您拥有的数据不包含电子邮件地址。您最好在存储 CalendarId 时存储与其关联的电子邮件地址。
您可以尝试将 ConvertId 与通用的不可解析电子邮件地址一起使用,这应该将文件夹所属的 EmailAddress(不适用于公用文件夹)返回到 eg
AlternateId aiAlternateid = new AlternateId(IdFormat.EwsId, SharedFoder.Id.UniqueId, "mailbox@domain.com");
AlternateIdBase aiResponse = service.ConvertId(aiAlternateid, IdFormat.EwsId);
Console.WriteLine(((AlternateId)aiResponse).Mailbox);
干杯 格伦
【讨论】:
谢谢。 FolderId 的提供者 UID 部分不能让我找到日历所有者和电子邮件地址吗? 对于邮箱,文件夹 ID 中的 UID 将是 msdn.microsoft.com/en-us/library/office/cc815641.aspx。您也许可以从 ewsId 中提取 MailboxGUID(但该格式未记录在 AFAIK 中)。以上是关于EWS:来自日历 FolderId 的邮箱地址,这可能吗?的主要内容,如果未能解决你的问题,请参考以下文章
用于不知名文件夹名称的 Exchange Web 服务 FolderId
Exchange EWS:未定义类“DistinguishedFolderIdType”