Trabajando con Banderas de Mensaje en el Servidor

Cambio de las Banderas de Mensaje

Puedes cambiar las banderas de los mensajes utilizando el método changeMessageFlags(). Este método toma dos parámetros.

  1. El número de secuencia del mensaje o ID único.
  2. MessageFlag.

Se pueden establecer las siguientes banderas:

Establecer Banderas de Mensaje

El siguiente fragmento de código muestra cómo cambiar las banderas de mensajes en un servidor IMAP con Aspose.Email.

// Para ejemplos completos y archivos de datos, visita https://github.com/aspose-email/Aspose.Email-for-Java
// Marcar el mensaje como leído
client.changeMessageFlags(1, ImapMessageFlags.isRead());

Eliminar Banderas de Mensaje

Las banderas de mensaje también se pueden eliminar con el método removeMessageFlags(). Su uso es similar al del método changeMessageFlags(). Toma un número de secuencia o un ID de mensaje único y MessageFlag. El siguiente fragmento de código muestra cómo eliminar banderas de mensaje.

// Para ejemplos completos y archivos de datos, visita https://github.com/aspose-email/Aspose.Email-for-Java
// Eliminar la bandera del mensaje
client.removeMessageFlags(1, ImapMessageFlags.isRead());

Establecer Banderas Personalizadas

También puedes establecer banderas personalizadas para un mensaje utilizando el ImapClient de la API. El ImapClient AddMessageFlags proporciona la capacidad de establecer banderas personalizadas en los mensajes.

// Para ejemplos completos y archivos de datos, visita https://github.com/aspose-email/Aspose.Email-for-Java
// Crear un mensaje
MailMessage message = new MailMessage("user@domain1.com", "user@domain2.com", "asunto", "mensaje");

// Agregar el mensaje al buzón
String uid = client.appendMessage(ImapFolderInfo.IN_BOX, message);

// Agregar banderas personalizadas al mensaje agregado
client.addMessageFlags(uid, com.aspose.email.ImapMessageFlags.op_BitwiseOr(ImapMessageFlags.keyword("custom1"), ImapMessageFlags.keyword("custom1_0")));

// Recuperar los mensajes para verificar la presencia de la bandera personalizada
client.selectFolder(ImapFolderInfo.IN_BOX);

ImapMessageInfoCollection messageInfos = client.listMessages();
for (ImapMessageInfo inf : messageInfos) {
    ImapMessageFlags[] flags = inf.getFlags().split();

    if (inf.containsKeyword("custom1"))
        System.out.println("Palabra clave encontrada");
}