現在、EWS Managed APIを使用して、Exchange 2010サーバのPull Notificationにユーザを登録してカレンダーアイテムの通知を取得しています。私はこれをどのようにしたのですか?SQLデータベースから電子メールを受信したユーザのリストを取得し、それぞれをループして、SubscribeToPullNotifications()
、次にGetEvents()
を使用してそれぞれをPull Notificationにサブクラス化します。 CalendarのフォルダにあるCreated
、Modified
、Deleted
というイベントを購読します。EWSを使用してExchange 2010サーバから一斉にすべての通知を取得
いつでもすべてのユーザーが通知を受け取るわけではないので、Exchangeサーバーからのすべての通知をすべてのユーザーに1つずつループさせる以外にも良い方法だと思っています。 MS Outlookのカレンダー内のアイテムを削除すると、Exchangeサーバーからイベントが発生します。
たとえば、200人のユーザーがSQLデータベースから取得しましたが、そのうち10人だけがMS Outlookで新しい予定を作成していますが、それぞれをループしているため、10回の通知を得るには200回ループする必要がありますその10人のユーザー。
Exchangeサーバーからのイベントがあるかどうかを確認するために、すべてのユーザーをループする必要がないように、一度にExchangeサーバーからすべての通知を取得する方法はありますか?プッシュまたはストリーミング通知を使用するほうが良いかもしれないが、プル通知を使用してこれを行うより良い方法があることを知りたいと思いますか?
ありがとうございました。
これは、後ですべてのイベントを一度に取得するためにsubscription.GetEvents()を使用できることを意味します。私はこれが良いと思う。私はそれを試してみましょう。 – ahlun
これは不幸にも機能しません。次の説明でMicrosoft.Exchange.WebServices.Data.ServiceResponseExceptionをスローします。 "サブスクリプションは、単一のパブリックフォルダまたは単一のメールボックスのフォルダにのみ確立できます。" – Kingsley
@docflabby - これを試していただきありがとうございます! EWSサブスクリプションには限界があるように見えますが、まったく同じエラーが表示されます。監視するメールボックスごとに個別のサブスクリプションが必要になり、それぞれに対してsubscription.GetEvents()を呼び出します。私はこれを反映するために答えを更新します。 – SliverNinja