Работа с контактами на Exchange Server
Получение контактов с помощью EWS
Aspose.Email предоставляет класс EWSClient для подключения к Microsoft Exchange Server с использованием Exchange Web Services. Следующие фрагменты кода используют Exchange Web Services для чтения всех контактов. Следующий фрагмент кода показывает вам, как получить контакты с EWS.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C | |
// Create instance of IEWSClient class by giving credentials | |
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser()); | |
// List all the contacts | |
System::ArrayPtr<System::SharedPtr<Contact>> contacts = client->GetContacts(client->get_MailboxInfo()->get_ContactsUri()); | |
for (System::SharedPtr<Contact> contact : contacts) | |
{ | |
System::SharedPtr<MapiContact> mapiContact = Contact::to_MapiContact(contact); | |
// Display name and email address | |
System::Console::WriteLine(System::String(u"Name: ") + mapiContact->get_NameInfo()->get_DisplayName() + u", Email Address: " + mapiContact->get_ElectronicAddresses()->get_Email1()); | |
} |
Разрешить контакты с помощью имени контакта
Следующий фрагмент кода показывает вам, как получить контакты, используя имя контакта.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C | |
// Create instance of IEWSClient class by giving credentials | |
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser()); | |
// List all the contacts | |
System::ArrayPtr<System::SharedPtr<Contact>> contacts = client->ResolveContacts(u"Changed Name", Aspose::Email::Clients::Exchange::WebService::ExchangeListContactsOptions::FetchPhoto); | |
for (System::SharedPtr<Contact> contact : contacts) | |
{ | |
System::SharedPtr<MapiContact> mapiContact = Contact::to_MapiContact(contact); | |
// Display name and email address | |
System::Console::WriteLine(System::String(u"Name: ") + mapiContact->get_NameInfo()->get_DisplayName() + u", Email Address: " + mapiContact->get_ElectronicAddresses()->get_Email1()); | |
} |
Определение формата заметок контакта
Contact->get_NotesFormat указывает тип формата текста заметок контактов, определенный перечислением TextFormat.
Получение контакта по Id
Конкретный контакт может быть извлечен с сервера, используя его идентификатор контакта, как показано в следующем фрагменте кода.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C | |
System::SharedPtr<Contact> fetchedContact = client->GetContact(id); |
Добавление контактов
Метод CreateContact() класса IEWSClient можно использовать для добавления информации о контакте на Exchange Server. Метод CreateContact() принимает объект Contact в качестве входного параметра.
Чтобы добавить контакты на Exchange Server:
- Инициализируйте IEWSClient с адресом и учетными данными.
- Инициализируйте объект Contact с необходимыми свойствами.
- Вызовите метод CreateContact() и передайте контакт для добавления на Exchange Server.
Следующий фрагмент кода демонстрирует добавление контактов на Exchange Server.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C | |
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser()); | |
//Create New Contact | |
System::SharedPtr<Contact> contact = System::MakeObject<Contact>(); | |
//Set general info | |
contact->set_Gender(Aspose::Email::PersonalInfo::Gender::Male); | |
contact->set_DisplayName(u"Frank Lin"); | |
contact->set_CompanyName(u"ABC Co."); | |
contact->set_JobTitle(u"Executive Manager"); | |
//Add Phone numbers | |
contact->get_PhoneNumbers()->Add([&]{ auto tmp_0 = System::MakeObject<PhoneNumber>(); tmp_0->set_Number(u"123456789"); tmp_0->set_Category(PhoneNumberCategory::get_Home()); return tmp_0; }()); | |
//contact's associated persons | |
contact->get_AssociatedPersons()->Add([&]{ auto tmp_1 = System::MakeObject<AssociatedPerson>(); tmp_1->set_Name(u"Catherine"); tmp_1->set_Category(AssociatedPersonCategory::get_Spouse()); return tmp_1; }()); | |
contact->get_AssociatedPersons()->Add([&]{ auto tmp_2 = System::MakeObject<AssociatedPerson>(); tmp_2->set_Name(u"Bob"); tmp_2->set_Category(AssociatedPersonCategory::get_Child()); return tmp_2; }()); | |
contact->get_AssociatedPersons()->Add([&]{ auto tmp_3 = System::MakeObject<AssociatedPerson>(); tmp_3->set_Name(u"Merry"); tmp_3->set_Category(AssociatedPersonCategory::get_Sister()); return tmp_3; }()); | |
//URLs | |
contact->get_Urls()->Add([&]{ auto tmp_4 = System::MakeObject<Url>(); tmp_4->set_Href(u"www.blog.com"); tmp_4->set_Category(UrlCategory::get_Blog()); return tmp_4; }()); | |
contact->get_Urls()->Add([&]{ auto tmp_5 = System::MakeObject<Url>(); tmp_5->set_Href(u"www.homepage.com"); tmp_5->set_Category(UrlCategory::get_HomePage()); return tmp_5; }()); | |
//Set contact's Email address | |
contact->get_EmailAddresses()->Add([&]{ auto tmp_6 = System::MakeObject<EmailAddress>(); tmp_6->set_Address(u"Frank.Lin@Abc.com"); tmp_6->set_DisplayName(u"Frank Lin"); tmp_6->set_Category(EmailAddressCategory::get_Email1()); return tmp_6; }()); | |
try | |
{ | |
client->CreateContact(contact); | |
} | |
catch (System::Exception& ex) | |
{ | |
System::Console::WriteLine(ex.get_Message()); | |
} |
Обновление контактов
Информация о контактах может быть обновлена с помощью Microsoft Outlook. Aspose.Email также может обновить информацию о контактах на Exchange Server с использованием Exchange Web Service (EWS). Метод IEWSClient->UpdateContact может обновить информацию о контактах на Exchange Server.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C | |
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser()); | |
// List all the contacts and Loop through all contacts | |
System::ArrayPtr<System::SharedPtr<Contact>> contacts = client->GetContacts(client->get_MailboxInfo()->get_ContactsUri()); | |
System::SharedPtr<Contact> contact = contacts[0]; | |
System::Console::WriteLine(System::String(u"Name: ") + contact->get_DisplayName()); | |
contact->set_DisplayName(u"David Ch"); | |
client->UpdateContact(contact); |
Удаление контактов
Класс IEWSClient предоставляет метод DeleteContact для доступа к удалению контактов из папки контактов Exchange Server. Этот метод принимает идентификатор контакта или Contact в качестве входного параметра.
Чтобы удалить контакты с Exchange Server:
- Инициализируйте IEWSClient с адресом и учетными данными.
- Удалите контакт, используя его идентификатор.
- Удалите контакт, вызвав метод DeleteContact с объектом Contact в качестве входного параметра.
Следующий фрагмент кода показывает вам, как удалить контакты с сервера Exchange, используя IEWSClient->DeleteContact.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C | |
// Create instance of EWSClient class by giving credentials | |
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser()); | |
System::String strContactToDelete = u"John Teddy"; | |
System::ArrayPtr<System::SharedPtr<Contact>> contacts = client->GetContacts(client->get_MailboxInfo()->get_ContactsUri()); | |
for (System::SharedPtr<Contact> contact : contacts) | |
{ | |
if (System::ObjectExt::Equals(contact->get_DisplayName(), strContactToDelete)) | |
{ | |
client->DeleteContact(contact); | |
} | |
} | |
client->Dispose(); |