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

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

Вы можете изменить флаги сообщений, используя 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. Клиент IMAP 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");
}