Установка, изменение и удаление флагов сообщений на IMAP‑сервере

Установить/изменить флаги сообщения

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

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

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

Следующий фрагмент кода показывает, как изменить флаги сообщения на IMAP‑сервере с помощью Aspose.Email.

// Mark the message as read
client.ChangeMessageFlags(1, ImapMessageFlags.IsRead);

Удалить флаги сообщений

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

// Remove the message flag
client.RemoveMessageFlags(1, ImapMessageFlags.IsRead);

Задать пользовательские флаги

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

// 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.InBox, message);

//Add custom flags to the added messge
client.AddMessageFlags(uid, ImapMessageFlags.Keyword("custom1") | ImapMessageFlags.Keyword("custom1_0"));

//Retreive the messages for checking the presence of custom flag
client.SelectFolder(ImapFolderInfo.InBox);

ImapMessageInfoCollection messageInfos = client.ListMessages();
foreach (var inf in messageInfos)
{
    ImapMessageFlags[] flags = inf.Flags.Split();

    if (inf.ContainsKeyword("custom1"))
        Console.WriteLine("Keyword found");
}