Establecer, cambiar y eliminar banderas de mensajes en servidor IMAP

Establecer/Cambiar banderas de mensaje

Puedes cambiar las banderas de un mensaje estableciendo nuevas con el ChangeMessageFlags() método. Este método acepta dos parámetros.

  1. El número de secuencia de un mensaje o su ID único.
  2. MessageFlag.

Las siguientes banderas pueden establecerse:

El siguiente fragmento de código muestra cómo cambiar banderas de mensaje en un servidor IMAP con Aspose.Email.

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

Eliminar indicadores de mensajes

Las banderas de mensaje también pueden eliminarse con el RemoveMessageFlags() método. El uso es similar al de la ChangeMessageFlags() método. Toma un número de secuencia o ID único del mensaje y MessageFlag. El siguiente fragmento de código muestra cómo eliminar banderas de mensaje.

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

Establecer banderas personalizadas

También puede establecer banderas personalizadas a un mensaje usando el ImapClient de la API. ImapClient AddMessageFlags brinda la capacidad de establecer banderas personalizadas en los mensajes.

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