Microsoft Exchange Server — это популярная платформа, предоставляющая различные службы совместной работы, такие как электронная почта, календари, контакты и т. д. В предыдущем сообщении мы показали вам, как читать электронные письма с Microsoft Exchange Server. Однако вам также может понадобиться работать с контактами на сервере Exchange программно. В этой статье вы узнаете, как добавлять, удалять или обновлять контакты на сервере Microsoft Exchange в C# .NET.
- .NET API для доступа к контактам на сервере MS Exchange
- Добавить контакты на сервер MS Exchange
- Удалить контакты с сервера MS Exchange
- Обновите контакт на сервере MS Exchange
С# .NET API для доступа к контактам на сервере MS Exchange
Для работы с контактами на Microsoft Exchange Server будем использовать Aspose.Email for .NET. Это хорошо известный API для работы с различными почтовыми клиентами из приложений .NET. Вы можете либо скачать библиотеку DLL API, либо установить ее из NuGet с помощью следующей команды.
PM> Install-Package Aspose.Email
Добавить контакты на сервер MS Exchange в C#
Ниже приведены шаги по добавлению контактов в Microsoft Exchange Server на C#.
- Сначала создайте и инициализируйте объект NetworkCredential с именем пользователя, паролем и доменом.
- Затем инициализируйте IEWSClient с помощью URI почтового ящика и объекта NetworkCredential.
- Создайте объект класса Контакт и задайте его свойства, такие как имя, должность, пол, телефон, связанные лица и т. д.
- Наконец, вызовите EWSClient.CreateContact(Contact), чтобы добавить контакт.
В следующем примере кода показано, как добавить контакт в Microsoft Exchange Server на C#.
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);
// Создать новый контакт
Contact contact = new Contact();
// Установить общую информацию
contact.Gender = Gender.Male;
contact.DisplayName = "Frank Lin";
contact.CompanyName = "ABC Co.";
contact.JobTitle = "Executive Manager";
// Добавить номера телефонов
contact.PhoneNumbers.Add(new PhoneNumber { Number = "123456789", Category = PhoneNumberCategory.Home });
// Связанные с контактом лица
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 });
// URL-адреса
contact.Urls.Add(new Url { Href = "www.blog.com", Category = UrlCategory.Blog });
contact.Urls.Add(new Url { Href = "www.homepage.com", Category = UrlCategory.HomePage });
// Установить адрес электронной почты контакта
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);
}
Удалить контакты с сервера MS Exchange в C#
Вы также можете удалить контакт с сервера MS Exchange. Для фильтрации контактов вы можете использовать имя, адрес электронной почты или любое другое подходящее свойство. Ниже приведены шаги по удалению контакта с Microsoft Exchange Server в C#.
- Сначала инициализируйте объект IEWSClient.
- Затем получите контакты с сервера MS Exchange, используя метод IEWSClient.GetContacts(EWSClient.MailboxInfo.ContactsUri).
- Прокрутите контакты и отфильтруйте нужный.
- Наконец, удалите отфильтрованный контакт с помощью метода IEWSClient.DeleteItem(Contact.Id.EWSId, DeletionOptions.DeletePermanently).
В следующем примере кода показано, как удалить контакты из Microsoft Exchange Server на C#.
// Инициализировать EWSClient
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 в C#
Вы также можете обновить контакт на MS Exchange Server, используя Aspose.Email для .NET. Ниже приведены шаги для выполнения этой операции.
- Сначала создайте и инициализируйте объект NetworkCredential с именем пользователя, паролем и доменом.
- Затем инициализируйте IEWSClient с помощью URI почтового ящика и объекта NetworkCredential.
- Получите контакты с Exchange Server, используя метод IEWSClient.GetContacts(EWSClient.MailboxInfo.ContactsUri).
- После этого прокручиваем контакты и фильтруем нужный контакт.
- Наконец, обновите свойства контакта и вызовите IEWSClient.UpdateContact(Contact), чтобы сохранить его.
В следующем примере кода показано, как обновить контакт на сервере MS Exchange в C#.
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);
// Инициализировать EWSClient
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
// Список всех контактов и просмотр всех контактов
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);
// Выберите нужный контакт
Contact contact = contacts[0];
Console.WriteLine("Name: " + contact.DisplayName);
contact.DisplayName = "David Ch";
// Обновить контакт
client.UpdateContact(contact);
Получите бесплатную лицензию API
Вы можете получить бесплатную временную лицензию для использования Aspose.Email для .NET без ограничений на пробную версию.
Вывод
В этой статье вы узнали, как работать с контактами в Microsoft Exchange Server на C#. Мы продемонстрировали, как программно добавлять, удалять и обновлять контакты с сервера MS Exchange на языке C#. Кроме того, вы можете изучить документацию, чтобы узнать больше об Aspose.Email для .NET. Также вы можете задать свои вопросы через наш форум.