Управление флагами сообщений на 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")