Crear y eliminar carpetas en MS Exchange Server en Java

Microsoft Exchange Server mantiene los correos electrónicos en diferentes carpetas, como la bandeja de entrada, la bandeja de salida, etc. Además, le permite crear sus propias carpetas o subcarpetas dentro de las carpetas predefinidas. En ciertos casos, es posible que deba crear carpetas personalizadas en Exchange Server mediante programación. Para lograr eso, este artículo cubre cómo crear o eliminar carpetas o subcarpetas con EWS en MS Exchange Server en Java.

API de Java para crear carpetas en MS Exchange Server

Para trabajar con carpetas en MS Exchange Server mediante EWS, utilizaremos Aspose.Email for Java. Es una potente API para trabajar con los servicios de Exchange Server desde aplicaciones Java. Puede descargar la API o instalarla usando las siguientes configuraciones de Maven.

Repositorio:

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

Dependencia:

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

Crear una carpeta en MS Exchange Server en Java

Los siguientes son los pasos para crear una carpeta en MS Exchange Server en Java.

El siguiente ejemplo de código muestra cómo crear una carpeta en MS Exchange Server con EWS en Java.

// Cree una instancia de la clase EWSClient proporcionando credenciales
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd",
		"domain");

// Obtener URI de la bandeja de entrada (para crear una carpeta en la bandeja de entrada)
String inbox = client.getMailboxInfo().getInboxUri();

// Especifique el nombre de la carpeta
String folderName1 = "EMAILNET-35054";

try {
	// Crear carpeta
	client.setUseSlashAsFolderSeparator(true);
	client.createFolder(inbox, folderName1);
} catch (Exception e) {
	// Hacer algo
}

Crear una subcarpeta en MS Exchange Server en Java

Para crear una subcarpeta, primero debe verificar si la carpeta principal existe o no. Si es así, simplemente cree la subcarpeta; de lo contrario, cree primero la carpeta principal. Los siguientes pasos demuestran cómo crear una subcarpeta en MS Exchange Server en Java.

El siguiente ejemplo de código muestra cómo crear una subcarpeta en MS Exchange Server en Java.

// Cree una instancia de la clase EWSClient proporcionando credenciales
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// Obtener URI de la bandeja de entrada (para crear una carpeta en la bandeja de entrada)
String inbox = client.getMailboxInfo().getInboxUri();

// Especifique el nombre de la carpeta
String folderName1 = "EMAILNET-35054";

// Especifique el nombre de la subcarpeta
String subFolderName = "2015";
String folderName2 = folderName1 + "/" + subFolderName;

try
{			
    // Crear carpeta
    client.setUseSlashAsFolderSeparator(true);
    if (!client.folderExists(inbox, folderName1))
    {
        // Crear carpeta
        client.createFolder(inbox, folderName1);
    }

    // Crear sub-carpeta
    client.createFolder(inbox, folderName2);
}
catch(Exception e)
{
    // Hacer algo
}

Eliminar una carpeta en MS Exchange Server en Java

Los siguientes son los pasos para eliminar una carpeta en MS Exchange Server en Java.

El siguiente ejemplo de código muestra cómo eliminar una carpeta en MS Exchange Server en Java.

// Cree una instancia de la clase EWSClient proporcionando credenciales
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// Obtener URI de la bandeja de entrada (para crear una carpeta en la bandeja de entrada)
String inbox = client.getMailboxInfo().getInboxUri();

// Especifique el nombre de la carpeta
String folderName1 = "EMAILNET-35054";

ExchangeFolderInfo rootFolderInfo = null;

try
{			
	ExchangeFolderInfo[] referenceToRootFolderInfo = { rootFolderInfo };
	
	// Comprobar si existe la carpeta
	boolean outRefCondition0 = client.folderExists(inbox, folderName1, /* out */ referenceToRootFolderInfo);
	rootFolderInfo = referenceToRootFolderInfo[0];

	if (outRefCondition0) {		        
	// Eliminar carpeta
	client.deleteFolder(rootFolderInfo.getUri(), true);
	}
}
catch(Exception e)
{
    // Hacer algo
}

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para usar Aspose.Email for Java sin limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a trabajar con carpetas en Microsoft Exchange Server con EWS en Java. Ha visto cómo crear y eliminar una carpeta en particular en MS Exchange Server mediante programación en Java. Además, puede obtener más información sobre Aspose.Email for Java en la documentación. En caso de que tenga alguna consulta, puede publicarla en nuestro foro.

Ver también