Administrar indicadores de mensajes en el servidor IMAP

Aspose.Email para Python a través de .NET le permite administrar los indicadores de mensajes IMAP como Read, Answered, Deleted y Custom Keywords directamente desde su aplicación Python. Estos indicadores ayudan a marcar el estado o la situación de los mensajes de correo en el buzón y son útiles para crear flujos de trabajo de correo electrónico organizados.

Este artículo cubre cómo:

  • Establecer y eliminar indicadores estándar del sistema IMAP

  • Asignar indicadores de palabras clave personalizadas a los mensajes

La clave métodos usado:

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

Banderas compatibles:

  • Answered
  • Deleted
  • Draft
  • Flagged
  • IsRead
  • Recent
  • Indicadores de palabras clave personalizadas

Establecer indicadores de mensajes IMAP

Utilice el change_message_flags() método del ImapClient clase para aplicar indicadores estándar como IsRead o Deleted a los mensajes. Este método toma un identificador de mensaje (número de secuencia o UID) y una o más banderas.

El siguiente fragmento de código muestra cómo establecer indicadores de mensajes en un servidor IMAP con Aspose.Email:

Eliminar indicadores de mensajes

Puede eliminar indicadores del sistema o personalizados usando el remove_message_flags() método del ImapClient clase. Esto se usa comúnmente para desmarcar mensajes como leídos o eliminados. El ejemplo de código a continuación demuestra cómo eliminar la bandera ‘is_read’ con una sola línea de código:

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

Agregar indicadores de palabras clave personalizadas a mensajes IMAP

Aspose.Email también admite asignar indicadores de palabras clave personalizadas usando el add_message_flags() método del ImapClient clase. Estos indicadores definidos por el usuario pueden ser útiles para reglas de categorización o procesamiento.

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