Quản lý cờ tin nhắn trên máy chủ IMAP

Aspose.Email cho Python qua .NET cho phép bạn quản lý các cờ tin nhắn IMAP như Read, Answered, Deleted và Custom Keywords trực tiếp từ ứng dụng Python của bạn. Các cờ này giúp đánh dấu trạng thái hoặc tình trạng của tin nhắn email trong hộp thư và hữu ích cho việc xây dựng quy trình email có tổ chức.

Bài viết này bao gồm cách:

  • Đặt và xóa các cờ hệ thống IMAP chuẩn

  • Gán cờ từ khóa tùy chỉnh cho tin nhắn

Khóa phương thức được sử dụng:

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

Các cờ được hỗ trợ:

  • Answered
  • Deleted
  • Draft
  • Flagged
  • IsRead
  • Recent
  • Cờ từ khóa tùy chỉnh

Đặt cờ tin nhắn IMAP

Sử dụng change_message_flags() phương thức của ImapClient lớp để áp dụng các cờ chuẩn như IsRead hoặc Deleted cho tin nhắn. Phương pháp này nhận một định danh tin nhắn (số thứ tự hoặc UID) và một hoặc nhiều cờ.

Đoạn mã sau cho bạn thấy cách đặt cờ tin nhắn trên máy chủ IMAP với Aspose.Email:

Xóa cờ tin nhắn

Bạn có thể bỏ cờ hệ thống hoặc tùy chỉnh bằng cách sử dụng remove_message_flags() phương thức của ImapClient lớp. Thông thường được dùng để bỏ đánh dấu tin nhắn là đã đọc hoặc đã xóa. Đoạn mã dưới đây minh họa cách bỏ cờ ‘is_read’ chỉ trong một dòng mã:

# Remove the 'is_read' flag from the message
client.remove_message_flags(1, ae.clients.imap.ImapMessageFlags.is_read)

Thêm cờ từ khóa tùy chỉnh vào tin nhắn IMAP

Aspose.Email cũng hỗ trợ gán cờ từ khóa tùy chỉnh bằng cách sử dụng add_message_flags() phương thức của ImapClient lớp. Những cờ do người dùng định nghĩa này có thể hữu ích cho việc phân loại hoặc quy tắc xử lý.

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")