あなたが書いた通り:予定の主催者(あなたのイベント)にこの予定に関する情報がないため、招待状への参加者の反応は役に立たない。
あなたができることは、PHPウェブページで作成したイベントに関するExchangeServerのホストカレンダーに予定の作成を追加することです。適切な保存方法で予定を保存すると、招待状が自動的に送信され、ホストのカレンダーフォルダイベント(EWSサブスクリプションイベントはあなたのものではない)のサブスクリプションを作成し、定期的にチェックして参加者の応答でレコードを更新できます。
あなたはこのような約束を作成することができます
Appointment app = new Appointment(_service);
app.Start = DateTime.Now.AddMinutes(30);
app.End = DateTime.Now.AddHours(2);
app.Subject = "Test appointment";
app.RequiredAttendees.Add("[email protected]");
app.RequiredAttendees.Add("[email protected]");
app.Save(WellKnownFolderName.Calendar, SendInvitationsMode.SendOnlyToAll);
を、カレンダーフォルダのサブスクリプションを作成する:
var subscription = _service.SubscribeToPullNotifications(new FolderId[] { WellKnownFolderName.Calendar }, 5, null, EventType.Created, EventType.Deleted, EventType.Modified, EventType.FreeBusyChanged);
上記のコードは、タイムアウト5分(そのサブスクリプションの意志とカレンダーに関するイベントのサブスクリプションを作成します5分に1回以上チェックしないとサーバーから削除されます)、サブスクリプションには作成、変更、削除、または空き時間情報が変更されたアイテムに関するイベントのキューが含まれます。
は、あなたがこのような何かをするイベントのサブスクリプションを照会するには、次の
var events = subscription.GetEvents();
if (events.AllEvents.Count > 0)
{
foreach (var itemEvent in events.ItemEvents)
{
switch (itemEvent.EventType)
{
case EventType.Created:
break;
case EventType.Modified:
break;
case EventType.Copied:
break;
case EventType.FreeBusyChanged:
break;
}
}
}
そして、あなたはあなたが興味のある項目のためのイベントタイプを取得するとき、あなたはあなたのデータベースを更新することができ
。