Berichtvlaggen beheren op IMAP‑server
Aspose.Email voor Python via .NET stelt je in staat om IMAP‑berichtvlaggen zoals Read, Answered, Deleted en Custom Keywords rechtstreeks vanuit je Python‑applicatie te beheren. Deze vlaggen helpen de status van e‑mailberichten in de mailbox te markeren en zijn nuttig voor het opzetten van georganiseerde e‑mail‑workflows.
Dit artikel behandelt hoe:
-
Standaard IMAP‑systeempvlaggen instellen en verwijderen
-
Aangepaste sleutelwoord‑vlaggen toewijzen aan berichten
De sleutel methoden gebruikt:
- change_message_flags()
- remove_message_flags()
- add_message_flags()
Ondersteunde vlaggen:
- Answered
- Deleted
- Draft
- Flagged
- IsRead
- Recent
- Aangepaste sleutelwoord‑vlaggen
IMAP‑berichtvlaggen instellen
Gebruik de change_message_flags() methode van de ImapClient klasse om standaardvlaggen zoals IsRead of Deleted op berichten toe te passen. Deze methode neemt een berichtidentificatie (volgnummer of UID) en één of meer vlaggen.
Het volgende code‑fragment laat zien hoe je berichtvlaggen instelt op een IMAP‑server met Aspose.Email:
Berichtvlaggen verwijderen
Je kunt systeem‑ of aangepaste vlaggen verwijderen met de remove_message_flags() methode van de ImapClient klasse. Dit wordt vaak gebruikt om berichten als gelezen of verwijderd te demarkeren. Het onderstaande code‑voorbeeld laat zien hoe je de ‘is_read’-vlag met één regel code kunt verwijderen:
# Remove the 'is_read' flag from the message
client.remove_message_flags(1, ae.clients.imap.ImapMessageFlags.is_read)
Aangepaste sleutelwoord‑vlaggen toevoegen aan IMAP‑berichten
Aspose.Email ondersteunt ook het toewijzen van aangepaste sleutelwoord‑vlaggen met behulp van de add_message_flags() methode van de ImapClient klasse. Deze door de gebruiker gedefinieerde vlaggen kunnen nuttig zijn voor categorisatie of verwerkingsregels.
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")