จัดการธงข้อความบนเซิร์ฟเวอร์ IMAP

Aspose.Email สำหรับ Python ผ่าน .NET อนุญาตให้คุณจัดการธงข้อความ IMAP เช่น Read, Answered, Deleted และคีย์เวิร์ดกำหนดเองโดยตรงจากแอปพลิเคชัน Python ของคุณ ธงเหล่านี้ช่วยระบุสถานะหรือสภาพของข้อความอีเมลในกล่องเมลและมีประโยชน์ในการสร้าง workflow อีเมลที่เป็นระบบ.

บทความนี้ครอบคลุมวิธีการ:

  • ตั้งค่าและลบธงระบบ 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")