مدیریت پرچم‌های پیام در سرور IMAP

Aspose.Email برای پایتون از طریق .NET به شما امکان می‌دهد پرچم‌های پیام IMAP مانند Read، Answered، Deleted و کلیدواژه‌های سفارشی را مستقیماً از برنامه پایتون خود مدیریت کنید. این پرچم‌ها برای علامت‌گذاری وضعیت یا حالت پیام‌های ایمیل در صندوق پستی مفید هستند و برای ساخت گردش کار منظم ایمیل کاربرد دارند.

این مقاله توضیح می‌دهد چگونه:

  • تنظیم و حذف پرچم‌های استاندارد سیستم IMAP

  • اختصاص پرچم‌های کلیدواژه سفارشی به پیام‌ها

کلید متدها استفاده‌شده:

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

پرچم‌های پشتیبانی‌شده:

  • پاسخ‌داده‌شده
  • حذف‌شده
  • پیشنویس
  • پرچم‌دار
  • IsRead
  • جدید
  • پرچم‌های کلیدواژه سفارشی

تنظیم پرچم‌های پیام 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")