在 IMAP 服务器上管理邮件标记

通过 .NET 的 Aspose.Email for Python 允许您直接在 Python 应用程序中管理 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)以及一个或多个标记。

下面的代码片段展示了如何使用 Aspose.Email 在 IMAP 服务器上设置邮件标记:

移除邮件标记

您可以使用 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")