Работа с флагами сообщений на сервере

Изменение флагов сообщения

Вы можете изменить флаги сообщения, используя changeMessageFlags() метод. Этот метод принимает два параметра.

  1. Номер последовательности сообщения или уникальный идентификатор.
  2. MessageFlag.

Можно установить следующие флаги:

Установка флагов сообщения

Следующий фрагмент кода показывает, как изменить флаги сообщения на IMAP‑сервере с помощью 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());

Удаление флагов сообщения

Флаги сообщений также могут быть удалены с помощью removeMessageFlags() метод. Использование аналогично тому, что у changeMessageFlags() метод. Он принимает номер последовательности или уникальный идентификатор сообщения и MessageFlag. Следующий фрагмент кода показывает, как удалить флаги сообщения.

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

Установка пользовательских флагов

Вы также можете установить пользовательские флаги для сообщения, используя ImapClient API. ImapClient AddMessageFlags предоставляет возможность устанавливать пользовательские флаги для сообщений.

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