Керування прапорами повідомлень на IMAP сервері
Aspose.Email для Python через .NET дозволяє керувати прапорами повідомлень IMAP, такими як Read, Answered, Deleted та Custom Keywords, безпосередньо з вашого 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")