示例#1
0
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;
}
示例#2
0
$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();
示例#3
0
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;
}