Zarządzanie flagami wiadomości na serwerze IMAP

Aspose.Email dla Pythona poprzez .NET umożliwia zarządzanie flagami wiadomości IMAP, takimi jak Read, Answered, Deleted oraz Custom Keywords, bezpośrednio z aplikacji Python. Flag tych pomagają oznaczyć stan lub status wiadomości e‑mail w skrzynce i są przydatne przy budowaniu uporządkowanych przepływów pracy e‑mail.

Ten artykuł opisuje, jak:

  • Ustawianie i usuwanie standardowych flag systemu IMAP

  • Przypisywanie niestandardowych flag słów kluczowych do wiadomości

Klucz metody użyte:

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

Obsługiwane flagi:

  • Answered
  • Deleted
  • Draft
  • Flagged
  • IsRead
  • Recent
  • Niestandardowe flagi słów kluczowych

Ustawianie flag wiadomości IMAP

Użyj change_message_flags() metoda ImapClient klasa służąca do zastosowania standardowych flag, takich jak IsRead lub Deleted, do wiadomości. Metoda przyjmuje identyfikator wiadomości (numer sekwencyjny lub UID) oraz jedną lub więcej flag.

Poniższy fragment kodu pokazuje, jak ustawić flagi wiadomości na serwerze IMAP przy użyciu Aspose.Email:

Usuwanie flag wiadomości

Możesz usunąć flagi systemowe lub niestandardowe używając remove_message_flags() metoda ImapClient klasa. Jest to powszechnie używane do odznaczania wiadomości jako przeczytane lub usunięte. Poniższy przykład kodu demonstruje, jak usunąć flagę ‘is_read’ jedną linią kodu:

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

Dodawanie niestandardowych flag słów kluczowych do wiadomości IMAP

Aspose.Email obsługuje również przypisywanie niestandardowych flag słów kluczowych przy użyciu add_message_flags() metoda ImapClient klasa. Te flagi definiowane przez użytkownika mogą być przydatne do kategoryzacji lub reguł przetwarzania.

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")