Создание и удаление папок на сервере MS Exchange в Java

Microsoft Exchange Server хранит электронные письма в разных папках, таких как «Входящие», «Исходящие» и т. д. Кроме того, он позволяет создавать собственные папки или подпапки внутри предопределенных папок. В некоторых случаях вам может потребоваться создать пользовательские папки на сервере Exchange программным путем. Для этого в этой статье рассказывается, как создавать или удалять папки или подпапки с помощью EWS на MS Exchange Server в Java.

Java API для создания папок на сервере MS Exchange

Для работы с папками на сервере MS Exchange с помощью EWS мы будем использовать Aspose.Email для Java. Это мощный API для работы со службами Exchange Server из приложений Java. Вы можете либо скачать API, либо установить его, используя следующие конфигурации Maven.

Репозиторий:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>

Зависимость:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>22.2</version>
    <classifier>jdk16</classifier>
</dependency>

Создайте папку на сервере MS Exchange в Java

Ниже приведены шаги для создания папки на сервере MS Exchange в Java.

  • Подключитесь к серверу MS Exchange и получите объект клиента EWS в IEWSClient.
  • Укажите имя корневой папки и папку, которую вы хотите создать.
  • Создайте папку с помощью метода IEWSClient.createFolder(String, String).

В следующем примере кода показано, как создать папку на сервере MS Exchange с EWS в Java.

// Создайте экземпляр класса EWSClient, предоставив учетные данные
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd",
		"domain");

// Получить URI папки «Входящие» (чтобы создать папку в папке «Входящие»)
String inbox = client.getMailboxInfo().getInboxUri();

// Укажите имя папки
String folderName1 = "EMAILNET-35054";

try {
	// Создать папку
	client.setUseSlashAsFolderSeparator(true);
	client.createFolder(inbox, folderName1);
} catch (Exception e) {
	// Сделай что-нибудь
}

Создайте подпапку на сервере MS Exchange в Java

Чтобы создать подпапку, вам сначала нужно проверить, существует ли родительская папка или нет. Если это так, просто создайте подпапку, иначе сначала создайте родительскую папку. Следующие шаги демонстрируют, как создать подпапку на сервере MS Exchange в Java.

  • Подключитесь к серверу MS Exchange и получите объект клиента EWS в IEWSClient.
  • Укажите имя корневой папки и подпапки.
  • Проверьте, существует ли родительская папка, используя метод IEWSClient.folderExists(String, String). Если это не так, создайте его.
  • Создайте вложенную папку, используя метод IEWSClient.createFolder(String, String).

В следующем примере кода показано, как создать вложенную папку на сервере MS Exchange в Java.

// Создайте экземпляр класса EWSClient, предоставив учетные данные
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// Получить URI папки «Входящие» (чтобы создать папку в папке «Входящие»)
String inbox = client.getMailboxInfo().getInboxUri();

// Укажите имя папки
String folderName1 = "EMAILNET-35054";

// Укажите имя подпапки
String subFolderName = "2015";
String folderName2 = folderName1 + "/" + subFolderName;

try
{			
    // Создать папку
    client.setUseSlashAsFolderSeparator(true);
    if (!client.folderExists(inbox, folderName1))
    {
        // Создать папку
        client.createFolder(inbox, folderName1);
    }

    // Создать подпапку
    client.createFolder(inbox, folderName2);
}
catch(Exception e)
{
    // Сделай что-нибудь
}

Удалить папку на сервере MS Exchange в Java

Ниже приведены шаги для удаления папки на сервере MS Exchange в Java.

В следующем примере кода показано, как удалить папку на сервере MS Exchange в Java.

// Создайте экземпляр класса EWSClient, предоставив учетные данные
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// Получить URI папки «Входящие» (чтобы создать папку в папке «Входящие»)
String inbox = client.getMailboxInfo().getInboxUri();

// Укажите имя папки
String folderName1 = "EMAILNET-35054";

ExchangeFolderInfo rootFolderInfo = null;

try
{			
	ExchangeFolderInfo[] referenceToRootFolderInfo = { rootFolderInfo };
	
	// Проверить, существует ли папка
	boolean outRefCondition0 = client.folderExists(inbox, folderName1, /* out */ referenceToRootFolderInfo);
	rootFolderInfo = referenceToRootFolderInfo[0];

	if (outRefCondition0) {		        
	// Удалить папку
	client.deleteFolder(rootFolderInfo.getUri(), true);
	}
}
catch(Exception e)
{
    // Сделай что-нибудь
}

Получите бесплатную лицензию API

Вы можете получить бесплатную временную лицензию на использование Aspose.Email для Java без ограничений на пробную версию.

Вывод

В этой статье вы узнали, как работать с папками на сервере Microsoft Exchange с помощью EWS в Java. Вы видели, как программно создать и удалить определенную папку на сервере MS Exchange на языке Java. Кроме того, вы можете узнать больше об Aspose.Email для Java из документации. Если у вас возникнут вопросы, вы можете опубликовать их на нашем форуме.

Смотрите также