Gestisci i flag dei messaggi sul server IMAP

Aspose.Email per Python tramite .NET consente di gestire i flag dei messaggi IMAP come Read, Answered, Deleted e parole chiave personalizzate direttamente dalla tua applicazione Python. Questi flag aiutano a contrassegnare lo stato o la situazione dei messaggi email nella casella di posta e sono utili per creare flussi di lavoro email organizzati.

Questo articolo illustra come:

  • Imposta e rimuovi i flag di sistema IMAP standard

  • Assegna flag di parole chiave personalizzate ai messaggi

La chiave metodi usato:

  • change_message_flags()
  • remove_message_flags()
  • add_message_flags()

Flag supportati:

  • Answered
  • Deleted
  • Draft
  • Flagged
  • IsRead
  • Recent
  • Flag parole chiave personalizzate

Imposta flag dei messaggi IMAP

Usa il change_message_flags() metodo del ImapClient classe per applicare flag standard come IsRead o Deleted ai messaggi. Questo metodo accetta un identificatore del messaggio (numero di sequenza o UID) e uno o più flag.

Il frammento di codice seguente mostra come impostare i flag dei messaggi su un server IMAP con Aspose.Email:

Rimuovi flag dei messaggi

Puoi rimuovere flag di sistema o personalizzati usando il remove_message_flags() metodo del ImapClient classe. Questo è comunemente usato per rimuovere il contrassegno di lettura o cancellazione dei messaggi. L’esempio di codice qui sotto dimostra come rimuovere il flag ‘is_read’ con una sola riga di codice:

# Remove the 'is_read' flag from the message
client.remove_message_flags(1, ae.clients.imap.ImapMessageFlags.is_read)

Aggiungi flag di parole chiave personalizzate ai messaggi IMAP

Aspose.Email supporta anche l’assegnazione di flag di parole chiave personalizzate usando il add_message_flags() metodo del ImapClient classe. Questi flag definiti dall’utente possono essere utili per regole di categorizzazione o elaborazione.

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)

# Create a new message
message = ae.MailMessage("user@domain1.com", "user@domain2.com", "subject", "message")

# Append the message to the Inbox
uid = client.append_message(ae.clients.imap.ImapFolderInfo.IN_BOX, message)

# Add custom keyword flags to the message
client.add_message_flags(uid, ae.clients.imap.ImapMessageFlags.keyword("custom1") | ae.clients.imap.ImapMessageFlags.keyword("custom1_0"))

# Verify the presence of the custom keyword
client.select_folder(ae.clients.imap.ImapFolderInfo.IN_BOX)
messageInfos = client.ListMessages()

for inf in messageInfos:
  flags = inf.flags.split()
  if inf.contains_keyword("custom1"):
        print("Keyword found")