Работа с контактами на 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-.NET | |
// Create instance of IEWSClient class by giving credentials | |
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain"); | |
// List all the contacts | |
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri); | |
foreach (MapiContact contact in contacts) | |
{ | |
// Display name and email address | |
Console.WriteLine("Name: " + contact.NameInfo.DisplayName + ", Email Address: " + contact.ElectronicAddresses.Email1); | |
} |
Разрешение контактов по имени контакта
Следующий фрагмент кода показывает, как получать контакты с EWS.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
// Create instance of IEWSClient class by giving credentials | |
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain"); | |
// List all the contacts | |
Contact[] contacts = client.ResolveContacts("Changed Name", ExchangeListContactsOptions.FetchPhoto); | |
foreach (MapiContact contact in contacts) | |
{ | |
// Display name and email address | |
Console.WriteLine("Name: " + contact.NameInfo.DisplayName + ", Email Address: " + contact.ElectronicAddresses.Email1); | |
} |
Определение формата заметок контакта
Aspose.Email.Mail.Contact.NotesFormat задает тип текстового формата заметок контактов, определенный перечислением Aspose.Email.TextFormat.
Получение контакта по идентификатору
Определенный контакт может быть извлечен с сервера с использованием его идентификатора контакта, как показано в следующем примере кода.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
Contact fetchedContact = client.GetContact(id); |
Добавление контактов
Метод класса EWSClient CreateContact() может быть использован для добавления информации о контакте на Exchange Server. Метод CreateContact() принимает объект Contact в качестве входного параметра.
Чтобы добавить контакты на Exchange Server:
- Инициализируйте EWSClient с адресом и учетными данными.
- Инициализируйте объект Contact с необходимыми свойствами.
- Вызовите метод CreateContact для добавления контакта на Exchange Server.
Aspose.Email предоставляет класс EWSClient для подключения к Microsoft Exchange Server с использованием Exchange Web Services. Примеры кода показывают, как использовать Exchange Web Services для добавления контактов на Exchange Server.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
// Set mailboxURI, Username, password, domain information | |
string mailboxUri = "https://ex2010/ews/exchange.asmx"; | |
string username = "test.exchange"; | |
string password = "pwd"; | |
string domain = "ex2010.local"; | |
NetworkCredential credentials = new NetworkCredential(username, password, domain); | |
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials); | |
//Create New Contact | |
Contact contact = new Contact(); | |
//Set general info | |
contact.Gender = Gender.Male; | |
contact.DisplayName = "Frank Lin"; | |
contact.CompanyName = "ABC Co."; | |
contact.JobTitle = "Executive Manager"; | |
//Add Phone numbers | |
contact.PhoneNumbers.Add(new PhoneNumber { Number = "123456789", Category = PhoneNumberCategory.Home }); | |
//contact's associated persons | |
contact.AssociatedPersons.Add(new AssociatedPerson { Name = "Catherine", Category = AssociatedPersonCategory.Spouse }); | |
contact.AssociatedPersons.Add(new AssociatedPerson { Name = "Bob", Category = AssociatedPersonCategory.Child }); | |
contact.AssociatedPersons.Add(new AssociatedPerson { Name = "Merry", Category = AssociatedPersonCategory.Sister }); | |
//URLs | |
contact.Urls.Add(new Url { Href = "www.blog.com", Category = UrlCategory.Blog }); | |
contact.Urls.Add(new Url { Href = "www.homepage.com", Category = UrlCategory.HomePage }); | |
//Set contact's Email address | |
contact.EmailAddresses.Add(new EmailAddress { Address = "Frank.Lin@Abc.com", DisplayName = "Frank Lin", Category = EmailAddressCategory.Email1 }); | |
try | |
{ | |
client.CreateContact(contact); | |
} | |
catch (Exception ex) | |
{ | |
Console.WriteLine(ex.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-.NET | |
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials); | |
// List all the contacts and Loop through all contacts | |
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri); | |
Contact contact = contacts[0]; | |
Console.WriteLine("Name: " + contact.DisplayName); | |
contact.DisplayName = "David Ch"; | |
client.UpdateContact(contact); |
Удаление контактов
Класс EWSClient позволяет использовать DeleteContact для доступа и удаления контактов из папки контактов Exchange Server. Этот метод принимает идентификатор контакта или MapiContact в качестве входного параметра.
Чтобы удалить контакты с Exchange Server:
- Инициализируйте ExchangeWebServiceClient с адресом и учетными данными.
- Удалите контакт, используя его идентификатор.
- Удалите контакт, вызвав метод DeleteContact с MapiContact в качестве входного параметра.
Следующие примеры кода показывают, как удалить контакты с сервера Exchange с использованием Exchange Web Service.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
// Create instance of EWSClient class by giving credentials | |
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain"); | |
string strContactToDelete = "John Teddy"; | |
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri); | |
foreach (Contact contact in contacts) | |
{ | |
if (contact.DisplayName.Equals(strContactToDelete)) | |
client.DeleteItem(contact.Id.EWSId, DeletionOptions.DeletePermanently); | |
} | |
client.Dispose(); |
Работа с дополнительными свойствами контактов на Exchange Server
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
//Необходимые дополнительные свойства должны быть добавлены для их создания или чтения с сервера Exchange
string[] extraFields = new string[] {{ "Пользовательское поле 1", "Пользовательское поле 2", "Пользовательское поле 3", "Пользовательское поле 4" }};
foreach (string extraField in extraFields)
client.ContactExtendedPropertiesDefinition.Add(extraField);
//Создайте тестовый контакт на сервере Exchange
Contact contact = new Contact();
contact.DisplayName = "EMAILNET-38433 - " + Guid.NewGuid().ToString();
foreach (string extraField in extraFields)
contact.ExtendedProperties.Add(extraField, extraField);
string contactId = client.CreateContact(contact);
//извлеките контакт с сервера через некоторое время
Thread.Sleep(5000);
contact = client.GetContact(contactId);
//Парсинг дополнительных свойств контакта
foreach (string extraField in extraFields)
if (contact.ExtendedProperties.ContainsKey(extraField))
Console.WriteLine(contact.ExtendedProperties[extraField].ToString());