Работа с пользовательской конфигурацией на сервере

Управление пользовательской конфигурацией

API Aspose.Email может быть использован для управления пользовательской конфигурацией на сервере Exchange с помощью класса EWSClient. Этот класс использует службы веб Exchange, которые доступны только в Exchange Server 2007 и более поздних версиях. В этой статье мы рассмотрим, как читать, создавать, обновлять и удалять пользовательские конфигурации на Exchange Server 2010. Для всех функций, описанных в этой статье, требуется Microsoft Exchange Server 2010 Service Pack 1. Следующий фрагмент кода показывает, как подключиться к Exchange Server 2010 во всех примерах этой статьи.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
ExchangeTestUser exchangeUser = ExchangeTestUser(u"https://your.exchange.server/ews/Exchange.asmx", u"username", u"password");
const System::String mailboxUri = exchangeUser.MailboxUri;
const System::String domain = exchangeUser.Domain;
const System::String username = exchangeUser.Name;
const System::String password = exchangeUser.Password;
System::SharedPtr<System::Net::NetworkCredential> credentials = System::MakeObject<System::Net::NetworkCredential>(username, password, domain);
System::SharedPtr<IEWSClient> client = EWSClient::GetEWSClient(mailboxUri, credentials);

Чтение пользовательской конфигурации

Чтобы получить информацию о пользовательской конфигурации конкретной папки с сервера Exchange:

  1. Подключитесь к серверу Exchange, используя IEWSClient.
  2. Вызовите метод GetUserConfiguration(), чтобы получить пользовательскую конфигурацию для папки.
  3. Отобразите свойства пользовательской конфигурации, такие как ID, имя и элементы словаря в виде пар ключ-значение.

Следующий фрагмент кода показывает, как читать пользовательскую конфигурацию.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser());
System::Console::WriteLine(u"Connected to Exchange 2010");
try
{
// Get the User Configuration for Inbox folder
System::SharedPtr<UserConfigurationName> userConfigName = System::MakeObject<UserConfigurationName>(u"inbox.config", client->get_MailboxInfo()->get_InboxUri());
System::SharedPtr<UserConfiguration> userConfig = client->GetUserConfiguration(userConfigName);
System::Console::WriteLine(System::String(u"Configuration Id: ") + userConfig->get_Id());
System::Console::WriteLine(System::String(u"Configuration Name: ") + userConfig->get_UserConfigurationName()->get_Name());
System::Console::WriteLine(u"Key value pairs:");
for (auto o : System::IterateOver(userConfig->get_Dictionary()->get_Keys()))
{
System::String key = System::ObjectExt::Unbox<System::String>(o);
System::Console::WriteLine(key + u": " + System::ObjectExt::ToString(userConfig->get_Dictionary()->idx_get(o)));
}
}
catch (System::Exception& ex)
{
System::Console::WriteLine(ex.get_Message());
}

Создание пользовательских конфигураций

Чтобы создать пользовательскую конфигурацию для конкретной папки на сервере Exchange:

  1. Подключитесь к серверу Exchange, используя IEWSClient.
  2. Вызовите метод CreateUserConfiguration(), чтобы создать пользовательскую конфигурацию для папки.

Следующий фрагмент кода показывает, как создавать пользовательские конфигурации.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser());
System::Console::WriteLine(u"Connected to Exchange 2010");
// Create the User Configuration for Inbox folder
System::SharedPtr<UserConfigurationName> userConfigName = System::MakeObject<UserConfigurationName>(u"inbox.config", client->get_MailboxInfo()->get_InboxUri());
System::SharedPtr<UserConfiguration> userConfig = System::MakeObject<UserConfiguration>(userConfigName);
userConfig->get_Dictionary()->Add(System::ObjectExt::Box<System::String>(u"key1"), System::ObjectExt::Box<System::String>(u"value1"));
userConfig->get_Dictionary()->Add(System::ObjectExt::Box<System::String>(u"key2"), System::ObjectExt::Box<System::String>(u"value2"));
userConfig->get_Dictionary()->Add(System::ObjectExt::Box<System::String>(u"key3"), System::ObjectExt::Box<System::String>(u"value3"));
try
{
client->CreateUserConfiguration(userConfig);
}
catch (System::Exception& ex)
{
System::Console::WriteLine(ex.get_Message());
}

Обновление пользовательской конфигурации

Чтобы обновить пользовательскую конфигурацию для конкретной папки на сервере Exchange:

  1. Подключитесь к серверу Exchange, используя IEWSClient.
  2. Вызовите метод UpdateUserConfiguration(), чтобы обновить пользовательскую конфигурацию для папки.

Следующий фрагмент кода показывает, как обновлять пользовательскую конфигурацию.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient();
System::Console::WriteLine(u"Connected to Exchange 2010");
// Create the User Configuration for Inbox folder
System::SharedPtr<UserConfigurationName> userConfigName = System::MakeObject<UserConfigurationName>(u"inbox.config", client->get_MailboxInfo()->get_InboxUri());
System::SharedPtr<UserConfiguration> userConfig = client->GetUserConfiguration(userConfigName);
userConfig->set_Id(nullptr);
// Update User Configuration
userConfig->get_Dictionary()->idx_set(System::ObjectExt::Box<System::String>(u"key1"), System::ObjectExt::Box<System::String>(u"new-value1"));
client->UpdateUserConfiguration(userConfig);

Удаление пользовательской конфигурации

Чтобы удалить пользовательскую конфигурацию для конкретной папки на сервере Exchange:

  1. Подключитесь к серверу Exchange, используя IEWSClient.
  2. Вызовите метод DeleteUserConfiguration(), чтобы удалить пользовательскую конфигурацию для папки.

Следующий фрагмент кода показывает, как удалять пользовательскую конфигурацию.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::SharedPtr<System::Net::NetworkCredential> credentials = System::MakeObject<System::Net::NetworkCredential>(username, password, domain);
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser());
System::Console::WriteLine(u"Connected to Exchange 2010");
// Delete User Configuration
System::SharedPtr<UserConfigurationName> userConfigName = System::MakeObject<UserConfigurationName>(u"inbox.config", client->get_MailboxInfo()->get_InboxUri());
try
{
client->DeleteUserConfiguration(userConfigName);
}
catch (System::Exception& ex)
{
System::Console::WriteLine(ex.get_Message());
}