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

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

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

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

Следующие флаги могут быть установлены:

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

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// 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-.NET
// 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-.NET
// 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");
}