Nachrichtenflags auf IMAP-Server verwalten

Aspose.Email für Python über .NET ermöglicht es, IMAP‑Nachrichtenflags wie Read, Answered, Deleted und Custom Keywords direkt aus Ihrer Python‑Anwendung zu verwalten. Diese Flags helfen, den Zustand oder Status von E‑Mail‑Nachrichten im Postfach zu kennzeichnen und sind nützlich zum Aufbau organisierter E‑Mail‑Workflows.

Dieser Artikel behandelt, wie man:

  • Standard‑IMAP‑Systemflags setzen und entfernen

  • Benutzerdefinierte Schlüsselwort‑Flags Nachrichten zuweisen

Der Schlüssel Methoden verwendet:

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

Unterstützte Flags:

  • Answered
  • Deleted
  • Draft
  • Flagged
  • IsRead
  • Recent
  • Benutzerdefinierte Schlüsselwort‑Flags

IMAP-Nachrichtenflags setzen

Verwenden Sie die change_message_flags() Methode des ImapClient Klasse, um Standardflags wie IsRead oder Deleted auf Nachrichten anzuwenden. Diese Methode nimmt einen Nachrichtenidentifikator (Sequenznummer oder UID) und ein oder mehrere Flags.

Das folgende Codebeispiel zeigt, wie Nachrichtenflags auf einem IMAP-Server mit Aspose.Email gesetzt werden:

Nachrichtenflags entfernen

Sie können System‑ oder benutzerdefinierte Flags mit der remove_message_flags() Methode des ImapClient Klasse. Dies wird häufig verwendet, um Nachrichten als gelesen oder gelöscht zu demarkieren. Das folgende Codebeispiel zeigt, wie das ‘is_read’-Flag mit nur einer Codezeile entfernt wird:

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

Benutzerdefinierte Schlüsselwort‑Flags zu IMAP-Nachrichten hinzufügen

Aspose.Email unterstützt außerdem das Zuweisen benutzerdefinierter Schlüsselwort‑Flags mittels add_message_flags() Methode des ImapClient Klasse. Diese benutzerdefinierten Flags können für Kategorisierungs‑ oder Verarbeitungsregeln hilfreich sein.

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