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

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

Вы можете изменить флаги сообщений, используя метод 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
// Пометить сообщение как прочитанное
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
// Удалить флаг сообщения
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
// Создать сообщение
MailMessage message = new MailMessage("user@domain1.com", "user@domain2.com", "subject", "message");

// Добавить сообщение в почтовый ящик
String uid = client.appendMessage(ImapFolderInfo.IN_BOX, message);

// Добавить пользовательские флаги к добавленному сообщению
client.addMessageFlags(uid, com.aspose.email.ImapMessageFlags.op_BitwiseOr(ImapMessageFlags.keyword("custom1"), ImapMessageFlags.keyword("custom1_0")));

// Извлечь сообщения для проверки наличия пользовательского флага
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("Ключевое слово найдено");
}