Работа с флагами сообщений на сервере
Изменение флагов сообщений
Вы можете изменять флаги сообщений, используя метод ChangeMessageFlags(). Этот метод принимает два параметра.
- Последовательный номер сообщения или уникальный идентификатор.
- MessageFlag.
Следующие флаги могут быть установлены:
- Ответлено
- Удалено
- Черновик
- Пусто
- Помечено
- Прочитано
- Недавнее
Установка флагов сообщений
Следующий код показывает, как изменить флаги сообщений на IMAP-сервере с помощью Aspose.Email.
Удаление флагов сообщений
API также предоставляет метод ‘remove_message_flags’ класса ImapClient для удаления предопределенных системных флагов, таких как \Seen (что соответствует прочитанному сообщению), \Answered (на сообщение был дан ответ), \Flagged (сообщение помечено как важное), \Deleted (сообщение помечено для удаления) и \Draft (сообщение сохранено как черновик), а также пользовательских флагов ключевых слов, определенных пользователями. Метод принимает следующие параметры: уникальный идентификатор (UID) или последовательный номер сообщения вместе с флагами, которые вы хотите удалить. Пример кода ниже демонстрирует, как удалить флаг ‘is_read’ всего лишь одной строкой кода:
# Удалить флаг сообщения
client.remove_message_flags(1, ae.clients.imap.ImapMessageFlags.is_read)
Установка пользовательских флагов
Вы также можете установить пользовательские флаги для сообщения с помощью ImapClient API. Метод ‘add_message_flags’ предоставляет возможность установки пользовательских флагов на сообщения.
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)
# Создать сообщение
message = ae.MailMessage("user@domain1.com", "user@domain2.com", "subject", "message")
# Добавить сообщение в почтовый ящик
uid = client.append_message(ae.clients.imap.ImapFolderInfo.IN_BOX, message)
# Добавить пользовательские флаги к добавленному сообщению
client.add_message_flags(uid, ae.clients.imap.ImapMessageFlags.keyword("custom1") | ae.clients.imap.ImapMessageFlags.keyword("custom1_0"))
# Получить сообщения для проверки наличия пользовательского флага
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("Ключевое слово найдено")