IMAP サーバー上のメッセージフラグを管理

.NET 経由の Python 用 Aspose.Email を使用すると、Read、Answered、Deleted、およびカスタムキーワードなどの IMAP メッセージフラグを Python アプリケーションから直接管理できます。これらのフラグはメールボックス内のメールの状態やステータスを示すのに役立ち、整理されたメールワークフローの構築に有用です。

この記事では、以下の方法について説明します:

  • 標準 IMAP システムフラグの設定と削除

  • メッセージにカスタムキーワードフラグを割り当てる

キー メソッド 使用:

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

サポートされているフラグ:

  • Answered
  • Deleted
  • Draft
  • Flagged
  • IsRead
  • Recent
  • カスタムキーワードフラグ

IMAP メッセージフラグを設定

使用する change_message_flags() メソッド( ImapClient メッセージに IsRead や Deleted といった標準フラグを適用するクラスです。このメソッドはメッセージ識別子(シーケンス番号または UID)と1つ以上のフラグを受け取ります。

以下のコードスニペットは、Aspose.Email を使用して IMAP サーバー上のメッセージフラグを設定する方法を示しています:

メッセージフラグを削除

システムフラグまたはカスタムフラグは、以下を使用して削除できます remove_message_flags() メソッド( ImapClient クラスです。これは、メッセージの既読や削除のマークを解除する際に一般的に使用されます。以下のコードサンプルは、1 行のコードだけで ‘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")