ניהול דגלי הודעות בשרת IMAP
Aspose.Email עבור פייתון דרך .NET מאפשרת לנהל דגלי הודעות IMAP כגון Read, Answered, Deleted ומילות מפתח מותאמות ישירות מתוך יישום פייתון שלך. דגלים אלה מסמנים את המצב או הסטטוס של הודעות דוא"ל בתיבת הדואר והם שימושיים לבניית זרימות עבודה מסודרות של דוא"ל.
מאמר זה מכסה כיצד:
-
הגדר והסר דגלי מערכת 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")