2

我有一个使用 EWS 托管 API 的流通知订阅多个 Exchange 2010 邮箱的程序。

当我收到与某个项目相关的通知时,我需要确定该项目属于谁的邮箱。我能够获取项目的 ID 和父文件夹的 ID 等,但我没有看到任何方法来确定项目属于哪个邮箱。

4

2 回答 2

3

好的,所以如果我正确理解您的应用程序,您正在使用模拟并为所有模拟用户创建订阅。当您收到来自订阅的事件时,您想知道该事件是针对哪个用户发生的。如果是这种情况,您不能将您的订阅映射到为其创建订阅的用户吗?简单Dictionary<StreamingSubscription, ImpersonateduserId>就足够了当您收到通知时,您会从NotificationEventArgs.Subscription属性中获取订阅对象并找到在您的地图中创建订阅的用户 ID。从ImpersonatedUserId您那里可以获得 smtp 地址(属性Id),并且您知道那是哪个用户。

于 2011-07-08T11:29:12.733 回答
0
private void OnNotificationEvent(object sender, NotificationEventArgs args)
{
 string fromEmailAddress = args.Subscription.Service.ImpersonatedUserId.Id;
}

这就是您获取项目所属邮箱的电子邮件地址的方式。

于 2015-09-10T06:19:56.777 回答