Управление флагами сообщений на IMAP сервере

Aspose.Email для Python через .NET позволяет управлять флагами сообщений IMAP, такими как Read, Answered, Deleted и пользовательскими ключевыми словами, непосредственно из вашего Python‑приложения. Эти флаги помогают помечать состояние или статус писем в почтовом ящике и полезны для построения упорядоченных рабочих процессов с электронной почтой.

В этой статье рассматривается, как:

  • Установить и удалить стандартные системные флаги IMAP

  • Назначить пользовательские ключевые флаги сообщениям

Ключ методы используется:

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

Поддерживаемые флаги:

  • Answered
  • Deleted
  • Draft
  • Flagged
  • IsRead
  • Recent
  • Пользовательские ключевые флаги

Установить флаги сообщений IMAP

Используйте change_message_flags() метод ImapClient класс для применения стандартных флагов, таких как IsRead или Deleted, к сообщениям. Этот метод принимает идентификатор сообщения (номер последовательности или UID) и один или несколько флагов.

Приведённый ниже фрагмент кода показывает, как установить флаги сообщений на IMAP сервере с помощью Aspose.Email:

Удалить флаги сообщений

Вы можете удалить системные или пользовательские флаги, используя remove_message_flags() метод ImapClient класс. Обычно используется для снятия отметки о прочтении или удалении сообщения. Приведённый ниже пример кода демонстрирует, как удалить флаг ‘is_read’ одной строкой кода:

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

Добавить пользовательские ключевые флаги к сообщениям IMAP

Aspose.Email также поддерживает назначение пользовательских ключевых флагов с помощью add_message_flags() метод ImapClient класс. Эти пользовательские флаги могут быть полезны для категоризации или правил обработки.

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