ewshelper is a little wrapper around php-ews and helps you manage your exchange contacts via php.
it can handle very big lists also helps you normalize your contacts data.
install once with composer:
composer require vielhuber/ewshelper
then add this to your files:
require __DIR__ . '/vendor/autoload.php';
use vielhuber\ewshelper\ewshelper;
$ewshelper = new ewshelper('**host**', '**username**', '**password**');
$ewshelper->getContacts();
$ewshelper->getContact('**id**');
$ewshelper->normalizeData();
$ewshelper->removeDuplicates();
$ewshelper->addContact([
'first_name' => 'Max',
'last_name' => 'Mustermann',
'company_name' => 'Musterfirma',
'emails' => ['max@mustermann.de'],
'phones' => ['private' => ['0123456789'], 'business' => ['9876543210']],
'url' => 'https://www.mustermann.de',
'categories' => ['test']
]);
$ewshelper->updateContact('**id**', [
'first_name' => 'Max',
'last_name' => 'Mustermann',
'company_name' => 'Musterfirma',
'emails' => ['max@mustermann.de'],
'phones' => ['private' => ['0123456789'], 'business' => ['9876543210']],
'url' => 'https://www.mustermann.de',
'categories' => ['test']
]);
$ewshelper->removeContact('**id**');
the following helper function gets all exchange contacts in category test
,
deletes those that are not present in the provided array and creates those that don't exist yet in exchange.
$ewshelper->syncContacts('test', [
[
'first_name' => 'Max',
'last_name' => 'Mustermann',
'company_name' => 'Musterfirma',
'emails' => ['max@mustermann.de'],
'phones' => ['private' => ['0123456789'], 'business' => ['9876543210']],
'url' => 'https://www.mustermann.de',
'categories' => ['test']
],
[
'first_name' => 'Erika',
'last_name' => 'Mustermann',
'company_name' => 'Musterfirma',
'emails' => ['erika@mustermann.de'],
'phones' => ['private' => ['0123456789'], 'business' => ['9876543210']],
'url' => 'https://www.mustermann.de',
'categories' => ['test']
]
]);
when deleting phone numbers or making a lot of changes to existing contacts,
it is recommended to use the function clear offline items.