正如您所写:参与者对发送的邀请的反应是无用的,因为约会(您的活动)的组织者没有关于此约会的任何信息。
您可以做的是在ExchangeServer的主机日历中添加有关用户使用PHP网页创建的事件的约会创建。如果您使用适当的保存方法保存约会,并且如果您订购了主持人的日历文件夹事件(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分钟至少检查一次,则从服务器删除),订阅将包含有关创建,修改,删除或其空闲/忙碌状态已更改的项目的事件队列。
要查询认购事件,你做这样的事情:
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;
}
}
}
当你得到事件类型,你有兴趣的项目,您可以更新数据库
。