إدارة أعلام الرسائل على خادم IMAP
تتيح Aspose.Email للبايثون عبر .NET إمكانية إدارة أعلام رسائل IMAP مثل مقروء، مُجاب، محذوف، والكلمات المفتاحية المخصصة مباشرةً من تطبيق بايثون الخاص بك. تساعد هذه الأعلام على وضع علامة على حالة أو وضع رسائل البريد الإلكتروني في صندوق البريد وتفيد في بناء سير عمل بريد إلكتروني منظم.
يغطي هذا المقال كيفية:
-
تعيين وإزالة الأعلام القياسية لنظام 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")