Trabalhando com bandeiras de mensagens no servidor

Alterando as Flags da Mensagem

Você pode alterar as flags da mensagem usando o changeMessageFlags() método. Este método recebe dois parâmetros.

  1. O número de sequência da mensagem ou ID único.
  2. MessageFlag.

As seguintes bandeiras podem ser definidas:

Definindo bandeiras de mensagens

O trecho de código a seguir mostra como alterar bandeiras de mensagens em um servidor IMAP com 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());

Removendo bandeiras de mensagens

Bandeiras de mensagens também podem ser removidas com o removeMessageFlags() método. O uso é semelhante ao da changeMessageFlags() método. Ele recebe um número de sequência ou ID de mensagem único e MessageFlag. O trecho de código a seguir mostra como remover bandeiras de mensagens.

// 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());

Definindo bandeiras personalizadas

Você também pode definir bandeiras personalizadas para uma mensagem usando o ImapClient da API. O ImapClient AddMessageFlags fornece a capacidade de definir bandeiras personalizadas em mensagens.

// 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");
}