Definir, Alterar e Remover Flags de Mensagens no Servidor IMAP

Definir/Alterar Flags de Mensagens

Você pode mudar as flags de mensagens definindo novas com o ChangeMessageFlags() método. Este método recebe dois parâmetros.

  1. O número de sequência de uma mensagem ou seu ID exclusivo.
  2. MessageFlag.

As seguintes bandeiras podem ser definidas:

O trecho de código a seguir mostra como alterar bandeiras de mensagens em um servidor IMAP com Aspose.Email.

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

Remover Flags de Mensagem

Bandeiras de mensagens também podem ser removidas com o RemoveMessageFlags() método. O uso é semelhante ao da ChangeMessageFlags() método. Ele recebe um número de sequência ou ID de mensagem único e MessageFlag. O trecho de código a seguir mostra como remover bandeiras de mensagens.

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

Definir Flags Personalizadas

Você também pode definir bandeiras personalizadas para uma mensagem usando o ImapClient da API. O ImapClient AddMessageFlags fornece a capacidade de definir flags personalizadas em mensagens.

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