مدیریت پرچمهای پیام در سرور 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")