Я пытаюсь подключить систему управления календарями на основе php к календарям Exchange 2007.
У меня есть следующий код настройки в настоящее время.
$subject = 'Appointment with ..';
$request = new EWSType_CreateItemType();
$request->Items = new EWSType_NonEmptyArrayOfAllItemsType();
$request->Items->CalendarItem = new EWSType_CalendarItemType();
$request->Items->CalendarItem->Subject = $subject;
$date1 = new DateTime('2015-05-10T15:00:00+03:00');
$DateStart = $date1->format('Y-m-d H:i:00');
$date = new DateTime($DateStart);
$request->Items->CalendarItem->Start = $date->format('c');
$date1 = new DateTime('2015-05-10T17:00:00+03:00');
$DateEnd = $date1->format('Y-m-d H:i:00');
$date = new DateTime($DateEnd);
$request->Items->CalendarItem->End = $date->format('c');
$request->Items->CalendarItem->ReminderIsSet = false;
$request->Items->CalendarItem->ReminderMinutesBeforeStart = 15;
$request->Items->CalendarItem->Body = new EWSType_BodyType();
$request->Items->CalendarItem->Body->BodyType = EWSType_BodyTypeType::HTML;
$request->Items->CalendarItem->Body->_ = <<<EOD
<p><strong>Staff Attending</strong>:bob</p>
EOD;
$request->Items->CalendarItem->ItemClass = new EWSType_ItemClassType();
$request->Items->CalendarItem->ItemClass->_ = EWSType_ItemClassType::APPOINTMENT;
$request->Items->CalendarItem->Sensitivity = new EWSType_SensitivityChoicesType();
$request->Items->CalendarItem->Sensitivity->_ = EWSType_SensitivityChoicesType::NORMAL;
$request->Items->CalendarItem->Categories = new EWSType_ArrayOfStringsType();
$request->Items->CalendarItem->Categories->String = array(
'Client Meeting (Scheduled)'
);
$request->Items->CalendarItem->Location = "Showroom";
$request->SendMeetingInvitations = EWSType_CalendarItemCreateOrDeleteOperationType::SEND_ONLY_TO_ALL;
$request->Items->CalendarItem->RequiredAttendees->Attendee[0]->Mailbox->EmailAddress = "[email protected]";
$request->Items->CalendarItem->RequiredAttendees->Attendee[0]->Mailbox->RoutingType = 'SMTP';
$n = 1;$response = $ews->CreateItem($request);
Это прекрасно настроит событие в личном календаре пользователя, но мне нужно сделать так, чтобы оно было отправлено в календарь общих папок, для которого у меня есть идентификатор папки.
Если кто-то может помочь, это будет очень цениться!
Попробуйте добавить строку:
$request->SavedItemFolderId->FolderId->Id=$folder_id;
после
$ request = new EWSType_CreateItemType ();
где $ folder_id — это ваш тупо длинный идентификатор папки Microsoft !!!!
Я делаю то же самое прямо сейчас.
Вы должны заменить SEND_ONLY_TO_ALL на SEND_TO_NONE.
Это означает, что мы не можем отправлять приглашения на встречи для встреч, хранящихся в общей папке (я уже несколько недель пытаюсь найти обходной путь для этой проблемы).
Я не уверен, есть ли другие проблемы в вашем запросе, но это, безусловно, проблема.