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.
- El número de secuencia del mensaje o ID único.
- 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");
}