Trabajando con banderas de mensajes en el servidor

Cambiar los indicadores de mensaje

Puedes cambiar los indicadores de mensaje usando el changeMessageFlags() método. Este método acepta dos parámetros.

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

Las siguientes banderas pueden establecerse:

Configuración de banderas de mensajes

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Mark the message as read
client.changeMessageFlags(1, ImapMessageFlags.isRead());

Eliminando banderas de mensajes

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Remove the message flag
client.removeMessageFlags(1, ImapMessageFlags.isRead());

Configuración de banderas personalizadas

También puede establecer banderas personalizadas a un mensaje usando el ImapClient de la API. El ImapClient AddMessageFlags proporciona la capacidad de establecer banderas personalizadas en los mensajes.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Create a message
MailMessage message = new MailMessage("user@domain1.com", "user@domain2.com", "subject", "message");

// Append the message to mailbox
String uid = client.appendMessage(ImapFolderInfo.IN_BOX, message);

// Add custom flags to the added messge
client.addMessageFlags(uid, com.aspose.email.ImapMessageFlags.op_BitwiseOr(ImapMessageFlags.keyword("custom1"), ImapMessageFlags.keyword("custom1_0")));

// Retreive the messages for checking the presence of custom flag
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("Keyword found");
}