<?php
require_once 'vendor/autoload.php';
use \jamesiarmes\PhpEws\Client;
use \jamesiarmes\PhpEws\Request\FindItemType;
use \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType;
use \jamesiarmes\PhpEws\Enumeration\DefaultShapeNamesType;
use \jamesiarmes\PhpEws\Enumeration\DistinguishedFolderIdNameType;
use \jamesiarmes\PhpEws\Enumeration\IndexBasePointType;
use \jamesiarmes\PhpEws\Enumeration\ItemQueryTraversalType;
use \jamesiarmes\PhpEws\Enumeration\ResponseClassType;
use \jamesiarmes\PhpEws\Type\ContactsViewType;
use \jamesiarmes\PhpEws\Type\DistinguishedFolderIdType;
use \jamesiarmes\PhpEws\Type\IndexedPageViewType;
use \jamesiarmes\PhpEws\Type\ItemResponseShapeType;
// Set connection information.
$host = '';
$username = '';
$password = '';
$version = Client::VERSION_2007;
$client = new Client('mail.imailhosting.fr', $_POST['user'], $_POST['pass'], $version);
// Build the request.
$request = new FindItemType();
$request->ItemShape->BaseShape = DefaultShapeNamesType::ALL_PROPERTIES; //<------ IMPORTANT SINNON ERREUR
$request->ParentFolderIds = new NonEmptyArrayOfBaseFolderIdsType();
$request->ContactsView = new ContactsViewType();
// Find contacts in the contacts folder.
$folder_id = new DistinguishedFolderIdType();
$folder_id->Id = DistinguishedFolderIdNameType::CONTACTS;
$request->ParentFolderIds->DistinguishedFolderId[] = $folder_id;
$request->Traversal = ItemQueryTraversalType::SHALLOW; //<------ IMPORTANT SINNON ERREUR
$response = $client->FindItem($request);
// Iterate over the results, printing any error messages or contact ids.
$response_messages = $response->ResponseMessages->FindItemResponseMessage;
foreach ($response_messages as $response_message) {
// Make sure the request succeeded.
if ($response_message->ResponseClass != ResponseClassType::SUCCESS) {
$code = $response_message->ResponseCode;
$message = $response_message->MessageText;
fwrite(
STDERR,
"Failed to search for contacts with \"$code: $message\"\n"
);
continue;
}
// Iterate over the contacts that were found, printing the id of each.
$items = $response_message->RootFolder->Items->Contact;
foreach ($items as $item) {
$id = $item->ItemId->Id;
// var_dump($item->EmailAddresses->Entry[0]->_);
echo $item->CompleteName->FullName.'-------'.$item->EmailAddresses->Entry[0]->_;
}
}