Eliminando Mensajes del Servidor

Eliminando Mensajes

La clase ImapClient puede eliminar mensajes de un servidor IMAP. La función deleteMessage() de la clase ImapClient se utiliza para eliminar mensajes. Toma el número de secuencia del mensaje o el ID único como parámetro. La clase ImapClient proporciona los métodos deleteMessage y deleteMessages para eliminar mensajes uno por uno o de múltiples. El siguiente fragmento de código muestra cómo eliminar un mensaje de correo electrónico con el ID del mensaje 1 de un servidor IMAP.

try (ImapClient client = new ImapClient("host", "username", "password")) {
    client.setSecurityOptions(SecurityOptions.SSLImplicit);

    // Agregar mensaje de prueba
    client.selectFolder(ImapFolderInfo.IN_BOX);

    MailMessage eml = new MailMessage("from@from.com", "to@to.com");
    eml.setSubject("Mensaje a eliminar");
    eml.setBody("¡Hola! Este mensaje será eliminado!");
    String emlId = client.appendMessage(eml);

    // Eliminar el mensaje agregado
    client.deleteMessage(emlId);
    client.commitDeletes();
}

Eliminando Múltiples Mensajes

Se pueden eliminar múltiples correos electrónicos de la bandeja de entrada utilizando el ImapClient de la API Aspose.Email. El método deleteMessages proporciona varias opciones para eliminar múltiples mensajes del servidor utilizando IDs únicos, números de secuencia o elementos de ImapMessageInfoCollection. El siguiente fragmento de código muestra cómo eliminar múltiples mensajes.

try (ImapClient client = new ImapClient("host", "username", "password")) {
    client.selectFolder(ImapFolderInfo.IN_BOX);

    // Agregar mensajes de prueba
    List<MailMessage> emlList = new ArrayList<>();
    for (int i = 0; i < 3; i++) {
        MailMessage eml = new MailMessage("from@from.com", "to@to.com");
        eml.setSubject("Mensaje a eliminar " + i);
        eml.setBody("¡Hola! Este mensaje será eliminado!");

        emlList.add(eml);
    }

    AppendMessagesResult appendMessagesResult = client.appendMessages(emlList);
    List<String> uidList = new ArrayList<>();
    for (String uid : appendMessagesResult.getSucceeded().getValues()) {
        uidList.add(uid);
    }

    // Eliminación masiva de mensajes agregados
    client.deleteMessagesByUids(uidList, true);
    client.commitDeletes();
}