我有一个使用 EWS 托管 API 的流通知订阅多个 Exchange 2010 邮箱的程序。
当我收到与某个项目相关的通知时,我需要确定该项目属于谁的邮箱。我能够获取项目的 ID 和父文件夹的 ID 等,但我没有看到任何方法来确定项目属于哪个邮箱。
我有一个使用 EWS 托管 API 的流通知订阅多个 Exchange 2010 邮箱的程序。
当我收到与某个项目相关的通知时,我需要确定该项目属于谁的邮箱。我能够获取项目的 ID 和父文件夹的 ID 等,但我没有看到任何方法来确定项目属于哪个邮箱。
好的,所以如果我正确理解您的应用程序,您正在使用模拟并为所有模拟用户创建订阅。当您收到来自订阅的事件时,您想知道该事件是针对哪个用户发生的。如果是这种情况,您不能将您的订阅映射到为其创建订阅的用户吗?简单Dictionary<StreamingSubscription, ImpersonateduserId>
就足够了当您收到通知时,您会从NotificationEventArgs.Subscription
属性中获取订阅对象并找到在您的地图中创建订阅的用户 ID。从ImpersonatedUserId
您那里可以获得 smtp 地址(属性Id
),并且您知道那是哪个用户。
private void OnNotificationEvent(object sender, NotificationEventArgs args)
{
string fromEmailAddress = args.Subscription.Service.ImpersonatedUserId.Id;
}
这就是您获取项目所属邮箱的电子邮件地址的方式。