function GetEwsCalendarItem($username, $password, $item_id) { $rootpath = APPPATH . '\\libraries'; include $rootpath . '\\config_ews\\config_ews.php'; $ews = new ExchangeWebServices($hostmail, $username, $password); $request = new EWSType_FindItemType(); $request->ItemShape = new EWSType_ItemResponseShapeType(); $request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES; $request->ItemIds = new EWSType_NonEmptyArrayOfBaseItemIdsType(); $request->ItemIds->ItemId = new EWSType_ItemIdType(); $request->ItemIds->ItemId->Id = $item_id; $a_rdv = array(); try { $response = $ews->GetItem($request); } catch (EWS_Exception $e) { if ($e->getCode() == 401) { $a_rdv['FAILT'] = array("REQUEST_RESULT" => false, 'EWS_ACTION' => 'GETCALENDARITEM', 'STATUS_REQUEST' => 'CONNEXION_ERROR'); } else { $a_rdv['FAILT'] = array("REQUEST_RESULT" => false, 'EWS_ACTION' => 'GETCALENDARITEM', 'STATUS_REQUEST' => $e->getMessage()); } return $a_rdv; } $ResponseClass = $response->ResponseMessages->GetItemResponseMessage->ResponseClass; $ResponseCode = $response->ResponseMessages->GetItemResponseMessage->ResponseCode; if ($ResponseClass == 'Error') { $a_rdv['FAILT'] = array("REQUEST_RESULT" => false, 'EWS_ACTION' => 'GETCALENDARITEM', 'STATUS_REQUEST' => 'ERROR'); return $a_rdv; } $array_ech = $response->ResponseMessages->GetItemResponseMessage->Items->CalendarItem; $DateTimeZone = timezone_open('UTC'); $DateTZ = timezone_open('Europe/Brussels'); $dateSrc = $array_ech->Start; $local_start = date_create($dateSrc); //date_timezone_set($local_start, $DateTimeZone); date_timezone_set($local_start, $DateTZ); $dateSrc = $array_ech->End; $local_end = date_create($dateSrc); //date_timezone_set($local_end, $DateTimeZone); date_timezone_set($local_end, $DateTZ); $temp_start_date = $local_start->format('d/m/Y'); $temp_start_heure = $local_start->format('H:i'); $temp_end_date = $local_end->format('d/m/Y'); $temp_end_heure = $local_end->format('H:i'); $name_organisateur = $array_ech->Organizer->Mailbox->Name; $email_organisateur = $array_ech->Organizer->Mailbox->EmailAddress; $array_organisateur = array('NAME' => trim($name_organisateur), 'EMAIL' => trim($email_organisateur)); $array_RequiredAttendees = array(); if (isset($array_ech->RequiredAttendees) == true) { $temp_attendees = $array_ech->RequiredAttendees; if (gettype($temp_attendees->Attendee) == 'array') { foreach ($temp_attendees->Attendee as $Ovalue) { $temp_att_Name = $Ovalue->Mailbox->Name; $temp_att_EmailAddress = $Ovalue->Mailbox->EmailAddress; if (isset($Ovalue->ResponseType) == true) { $temp_att_ResponseType = $Ovalue->ResponseType; } else { $temp_att_ResponseType = 'Unknown'; } if (isset($Ovalue->LastResponseTime) == true) { $temp_LastResponseTime = $Ovalue->LastResponseTime; } else { $temp_LastResponseTime = ''; } if (trim($temp_att_Name) != '' && $temp_att_Name != null) { $array_RequiredAttendees[] = array('NAME' => trim($temp_att_Name), 'EMAIL' => trim($temp_att_EmailAddress), 'REPONSE' => strtoupper(trim($temp_att_ResponseType)), 'DERNIEREREPONSE' => trim($temp_LastResponseTime)); } } } else { $Ovalue = $temp_attendees->Attendee; $temp_att_Name = $Ovalue->Mailbox->Name; $temp_att_EmailAddress = $Ovalue->Mailbox->EmailAddress; if (isset($Ovalue->ResponseType) == true) { $temp_att_ResponseType = $Ovalue->ResponseType; } else { $temp_att_ResponseType = 'Unknown'; } if (isset($Ovalue->LastResponseTime) == true) { $temp_LastResponseTime = $Ovalue->LastResponseTime; } else { $temp_LastResponseTime = ''; } if (trim($temp_att_Name) != '' && $temp_att_Name != null) { $array_RequiredAttendees[] = array('NAME' => trim($temp_att_Name), 'EMAIL' => trim($temp_att_EmailAddress), 'REPONSE' => strtoupper(trim($temp_att_ResponseType)), 'DERNIEREREPONSE' => trim($temp_LastResponseTime)); } } } $array_OptionalAttendees = array(); if (isset($array_ech->OptionalAttendees) == true) { $temp_attendees = $array_ech->OptionalAttendees; //echo gettype($temp_attendees->Attendee).'<br />'; if (gettype($temp_attendees->Attendee) == 'array') { foreach ($temp_attendees->Attendee as $Ovalue) { $temp_att_Name = $Ovalue->Mailbox->Name; $temp_att_EmailAddress = $Ovalue->Mailbox->EmailAddress; if (isset($Ovalue->ResponseType) == true) { $temp_att_ResponseType = $Ovalue->ResponseType; } else { $temp_att_ResponseType = 'Unknown'; } if (isset($Ovalue->LastResponseTime) == true) { $temp_LastResponseTime = $Ovalue->LastResponseTime; } else { $temp_LastResponseTime = ''; } if (trim($temp_att_Name) != '' && $temp_att_Name != null) { $array_OptionalAttendees[] = array('NAME' => trim($temp_att_Name), 'EMAIL' => trim($temp_att_EmailAddress), 'REPONSE' => strtoupper(trim($temp_att_ResponseType)), 'DERNIEREREPONSE' => trim($temp_LastResponseTime)); } } } else { $Ovalue = $temp_attendees->Attendee; $temp_att_Name = $Ovalue->Mailbox->Name; $temp_att_EmailAddress = $Ovalue->Mailbox->EmailAddress; if (isset($Ovalue->ResponseType) == true) { $temp_att_ResponseType = $Ovalue->ResponseType; } else { $temp_att_ResponseType = 'Unknown'; } if (isset($Ovalue->LastResponseTime) == true) { $temp_LastResponseTime = $Ovalue->LastResponseTime; } else { $temp_LastResponseTime = ''; } if (trim($temp_att_Name) != '' && $temp_att_Name != null) { $array_OptionalAttendees[] = array('NAME' => trim($temp_att_Name), 'EMAIL' => trim($temp_att_EmailAddress), 'REPONSE' => strtoupper(trim($temp_att_ResponseType)), 'DERNIEREREPONSE' => trim($temp_LastResponseTime)); } } } $temp_body_value = $array_ech->Body->_; $body_type = $array_ech->Body->BodyType; if (trim($temp_body_value) != '') { if (trim($body_type) == 'HTML') { $temp_html_1 = explode('<body>', trim($temp_body_value)); $temp_html = explode('</body>', trim($temp_html_1[1])); $html = trim($temp_html[0]); } else { $html = $temp_body_value; } } else { $html = ''; } $key_array = $array_ech->ItemId->Id . '||' . $array_ech->ItemId->ChangeKey; $a_rdv[$key_array] = array("REQUEST_RESULT" => true, 'EWS_ACTION' => 'GETCALENDARITEM', "ID" => $array_ech->ItemId->Id, "CHANGEKEY" => $array_ech->ItemId->ChangeKey, "EXCHANGE_DEBUT" => $array_ech->Start, "EXCHANGE_FIN" => $array_ech->End, "LOCAL_DEBUT" => $local_start->format('Y-m-d\\TH:i:s\\Z'), "LOCAL_FIN" => $local_end->format('Y-m-d\\TH:i:s\\Z'), "START_DATE" => $temp_start_date, "START_HEURE" => $temp_start_heure, "END_DATE" => $temp_end_date, "END_HEURE" => $temp_end_heure, "SUJET" => $array_ech->Subject, "OU" => $array_ech->Location, 'ORGANISATEUR' => $array_organisateur, 'REQ_INVITES' => $array_RequiredAttendees, 'OPT_INVITES' => $array_OptionalAttendees, 'BODY' => trim($html)); return $a_rdv; }
$request->ParentFolderIds->FolderId = new EWSType_FolderIdType(); $request->ParentFolderIds->FolderId->Id = 'AAAUAHYtYmxvdEBsZWdhbGxhaXMuY29tAC4AAAAAAMPesS06BSxGv2vT074n9t0BAGVrQK4Od55NofVQDQdf3qoAAWioEzQAAA=='; $request->ParentFolderIds->FolderId->ChangeKey = 'AQAAABYAAABla0CuDneeTaH1UA0HX96qAAFosmUp'; // request $result = $ews->FindItem($request); if ($result->ResponseMessages->FindItemResponseMessage->ResponseCode == 'NoError' && $result->ResponseMessages->FindItemResponseMessage->ResponseClass == 'Success') { $count = $result->ResponseMessages->FindItemResponseMessage->RootFolder->TotalItemsInView; for ($i = 0; $i < $count; $i++) { $message_id = $result->ResponseMessages->FindItemResponseMessage->RootFolder->Items->Message[$i]->ItemId->Id; $request = new EWSType_GetItemType(); $request->ItemShape = new EWSType_ItemResponseShapeType(); $request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES; $request->ItemIds = new EWSType_NonEmptyArrayOfBaseItemIdsType(); $request->ItemIds->ItemId = new EWSType_ItemIdType(); $request->ItemIds->ItemId->Id = $message_id; $response = $ews->GetItem($request); //print_r($response);exit; if ($response->ResponseMessages->GetItemResponseMessage->ResponseCode == 'NoError' && $response->ResponseMessages->GetItemResponseMessage->ResponseClass == 'Success') { $message = $response->ResponseMessages->GetItemResponseMessage->Items->Message; if ($message) { //if(date("Y-m-d",strtotime($message->DateTimeReceived)) == date("Y-m-d")) { if (!empty($message->Attachments->FileAttachment)) { // FileAttachment attribute can either be an array or instance of stdClass... $attachments = array(); if (is_array($message->Attachments->FileAttachment) === FALSE) { $attachments[] = $message->Attachments->FileAttachment; } else { $attachments = $message->Attachments->FileAttachment; } foreach ($attachments as $attachment) { $request = new EWSType_GetAttachmentType();
function GetEwsCalendarItem($username, $password, $item_id) { $rootpath = addslashes($_SERVER["DOCUMENT_ROOT"]); include $rootpath . '\\config_ews\\config_ews.php'; $ews = new ExchangeWebServices($hostmail, $username, $password); $request = new EWSType_FindItemType(); $request->ItemShape = new EWSType_ItemResponseShapeType(); $request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES; $request->ItemIds = new EWSType_NonEmptyArrayOfBaseItemIdsType(); $request->ItemIds->ItemId = new EWSType_ItemIdType(); $request->ItemIds->ItemId->Id = $item_id; $a_rdv = array(); try { $response = $ews->GetItem($request); } catch (EWS_Exception $e) { if ($e->getCode() == 401) { $a_rdv['FAILT'] = array("REQUEST_RESULT" => false, 'STATUS_REQUEST' => 'CONNEXION_ERROR'); } else { $a_rdv['FAILT'] = array("REQUEST_RESULT" => false, 'STATUS_REQUEST' => $e->getMessage()); } return $a_rdv; } $ResponseClass = $response->ResponseMessages->GetItemResponseMessage->ResponseClass; $ResponseCode = $response->ResponseMessages->GetItemResponseMessage->ResponseCode; if ($ResponseClass == 'Error') { $a_rdv['FAILT'] = array("REQUEST_RESULT" => false, 'STATUS_REQUEST' => 'ERROR'); return $a_rdv; } $array_ech = $response->ResponseMessages->GetItemResponseMessage->Items->CalendarItem; //echo '<pre>'.print_r($array_ech, true).'</pre>'; //2012-02-27T08:30:00Z $a_temp = explode('T', $array_ech->Start); $a_date = explode('-', $a_temp[0]); $temp_start_date = $a_date[2] . '/' . $a_date[1] . '/' . $a_date[0]; $temp_start_heure = substr($a_temp[1], 0, 5); $a_temp = explode('T', $array_ech->End); $a_date = explode('-', $a_temp[0]); $temp_end_date = $a_date[2] . '/' . $a_date[1] . '/' . $a_date[0]; $temp_end_heure = substr($a_temp[1], 0, 5); $name_organisateur = $array_ech->Organizer->Mailbox->Name; $email_organisateur = $array_ech->Organizer->Mailbox->EmailAddress; $array_organisateur = array('NAME' => trim($name_organisateur), 'EMAIL' => trim($email_organisateur)); $array_RequiredAttendees = array(); if (isset($array_ech->RequiredAttendees) == true) { $temp_attendees = $array_ech->RequiredAttendees; if (gettype($temp_attendees->Attendee) == 'array') { foreach ($temp_attendees->Attendee as $Ovalue) { $temp_att_Name = $Ovalue->Mailbox->Name; $temp_att_EmailAddress = $Ovalue->Mailbox->EmailAddress; if (isset($Ovalue->ResponseType) == true) { $temp_att_ResponseType = $Ovalue->ResponseType; } else { $temp_att_ResponseType = 'Unknown'; } if (isset($Ovalue->LastResponseTime) == true) { $temp_LastResponseTime = $Ovalue->LastResponseTime; } else { $temp_LastResponseTime = ''; } if (trim($temp_att_Name) != '' && $temp_att_Name != null) { $array_RequiredAttendees[] = array('NAME' => trim($temp_att_Name), 'EMAIL' => trim($temp_att_EmailAddress), 'REPONSE' => strtoupper(trim($temp_att_ResponseType)), 'DERNIEREREPONSE' => trim($temp_LastResponseTime)); } } } else { $Ovalue = $temp_attendees->Attendee; $temp_att_Name = $Ovalue->Mailbox->Name; $temp_att_EmailAddress = $Ovalue->Mailbox->EmailAddress; if (isset($Ovalue->ResponseType) == true) { $temp_att_ResponseType = $Ovalue->ResponseType; } else { $temp_att_ResponseType = 'Unknown'; } if (isset($Ovalue->LastResponseTime) == true) { $temp_LastResponseTime = $Ovalue->LastResponseTime; } else { $temp_LastResponseTime = ''; } if (trim($temp_att_Name) != '' && $temp_att_Name != null) { $array_RequiredAttendees[] = array('NAME' => trim($temp_att_Name), 'EMAIL' => trim($temp_att_EmailAddress), 'REPONSE' => strtoupper(trim($temp_att_ResponseType)), 'DERNIEREREPONSE' => trim($temp_LastResponseTime)); } } } $array_OptionalAttendees = array(); if (isset($array_ech->OptionalAttendees) == true) { $temp_attendees = $array_ech->OptionalAttendees; echo gettype($temp_attendees->Attendee) . '<br />'; if (gettype($temp_attendees->Attendee) == 'array') { foreach ($temp_attendees->Attendee as $Ovalue) { $temp_att_Name = $Ovalue->Mailbox->Name; $temp_att_EmailAddress = $Ovalue->Mailbox->EmailAddress; if (isset($Ovalue->ResponseType) == true) { $temp_att_ResponseType = $Ovalue->ResponseType; } else { $temp_att_ResponseType = 'Unknown'; } if (isset($Ovalue->LastResponseTime) == true) { $temp_LastResponseTime = $Ovalue->LastResponseTime; } else { $temp_LastResponseTime = ''; } if (trim($temp_att_Name) != '' && $temp_att_Name != null) { $array_OptionalAttendees[] = array('NAME' => trim($temp_att_Name), 'EMAIL' => trim($temp_att_EmailAddress), 'REPONSE' => strtoupper(trim($temp_att_ResponseType)), 'DERNIEREREPONSE' => trim($temp_LastResponseTime)); } } } else { $Ovalue = $temp_attendees->Attendee; $temp_att_Name = $Ovalue->Mailbox->Name; $temp_att_EmailAddress = $Ovalue->Mailbox->EmailAddress; if (isset($Ovalue->ResponseType) == true) { $temp_att_ResponseType = $Ovalue->ResponseType; } else { $temp_att_ResponseType = 'Unknown'; } if (isset($Ovalue->LastResponseTime) == true) { $temp_LastResponseTime = $Ovalue->LastResponseTime; } else { $temp_LastResponseTime = ''; } if (trim($temp_att_Name) != '' && $temp_att_Name != null) { $array_OptionalAttendees[] = array('NAME' => trim($temp_att_Name), 'EMAIL' => trim($temp_att_EmailAddress), 'REPONSE' => strtoupper(trim($temp_att_ResponseType)), 'DERNIEREREPONSE' => trim($temp_LastResponseTime)); } } } $temp_body_value = $array_ech->Body->_; $body_type = $array_ech->Body->BodyType; if (trim($temp_body_value) != '') { if (trim($body_type) == 'HTML') { $temp_html_1 = explode('<body>', trim($temp_body_value)); $temp_html = explode('</body>', trim($temp_html_1[1])); $html = trim($temp_html[0]); } else { $html = $temp_body_value; } } else { $html = ''; } $key_array = $array_ech->ItemId->Id . '||' . $array_ech->ItemId->ChangeKey; $a_rdv[$key_array] = array("REQUEST_RESULT" => true, "ID" => $array_ech->ItemId->Id, "CHANGEKEY" => $array_ech->ItemId->ChangeKey, "EXCHANGE_DEBUT" => $array_ech->Start, "EXCHANGE_FIN" => $array_ech->End, "START_DATE" => $temp_start_date, "START_HEURE" => $temp_start_heure, "END_DATE" => $temp_end_date, "END_HEURE" => $temp_end_heure, "SUJET" => $array_ech->Subject, "OU" => $array_ech->Location, 'ORGANISATEUR' => $array_organisateur, 'REQ_INVITES' => $array_RequiredAttendees, 'OPT_INVITES' => $array_OptionalAttendees, 'BODY' => trim($html)); return $a_rdv; }