在Php-Ews中创建联系人时,避免重复项

时间:2018-06-26 08:58:03

标签: php exchangewebservices php-ews

我正在使用https://github.com/Garethp/php-ews/库访问Exchange服务器上的公共联系人文件夹。

这是我创建联系人的方式。

$api = API::withUsernameAndPassword($server, $user, $pass);
$folder = $api->getFolderByDisplayName('Public', Enumeration\DistinguishedFolderIdNameType::PUBLICFOLDERSROOT);
$contattiTotali = $api->getFolderByDisplayName('Contacts', $folder->getFolderId());
$id=$contattiTotali->getFolderId()->getId();
$api->setFolderId($contattiTotali->getFolderId());

$api->createContacts(array(
    'GivenName' => 'Homer',
    'Surname' => 'Simpson',
    'EmailAddresses' => array(
        'Entry' => array('Key' => Enumeration\EmailAddressKeyType::EMAIL_ADDRESS_1, '_value' => 'h.simpson@gmail.com')
    ),
    //Creating multiple entries
    'PhoneNumbers' => array(
        'Entry' => array(
            array('Key' => Enumeration\PhoneNumberKeyType::HOME_PHONE, '_value' => '000'),
            array('Key' => Enumeration\PhoneNumberKeyType::BUSINESS_PHONE, '_value' => '111'),
        )
    ),
    'PhysicalAddresses' => array(
        'Entry' => array(
            'Key' => Enumeration\PhysicalAddressKeyType::HOME,
            'street' => '123 Street',
            'city' => '123 City',
            'state' => '123 State',
            'countryOrRegion' => '123 Country',
            'postalCode' => '12345',
        )
    ),
));

代码实际上可以正常工作,但是如果我执行几次,它将复制联系人。

是否可以在创建新联系人之前检查联系人(电子邮件地址是否足够)?

1 个答案:

答案 0 :(得分:0)

告诉联系人是否已存在具有特定电子邮件地址的最简单方法是使用ResolveName操作,例如

principalSet.Where(x=>list1.Concat(list2).Concat(list3).Contains(x));