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”

使用 EWS 托管 API 创建共享邮箱

使用 EWS 和 OAuth 2 的 Office 365 日历 API

收件人上的 EWS 通知电子邮件地址已读取

EWS 解析名称不会返回邮箱,即使该邮箱存在于 Exchange 服务器中