Outlook PST ファイルを読み取り、フォルダーとサブフォルダーの情報を取得する

Aspose.Email for .NET は、Microsoft Outlook PST ファイルを読み取るための API を提供します。ディスクまたはストリームから PST ファイルをロードして、次のクラスのインスタンスに入れることができます。 PersonalStorage クラスは、フォルダー、サブフォルダー、メッセージなど、コンテンツの詳細情報にアクセスするために使用します。さらに、API は PST フォルダーからメッセージを取得する際に 検索フォルダー を含める機能も提供します。

PST ファイルのロード

Outlook PST ファイルは、次のクラスのインスタンスにロードできます: PersonalStorage クラスです。以下のコードスニペットは、PST ファイルのロード方法を示しています。

PST 情報の表示

後で PST ファイルのロード、ファイルの表示名、ルートフォルダー、サブフォルダー、メッセージ数に関する情報を取得できます。以下のコードスニペットは、PST ファイルの名前、フォルダー、フォルダー内のメッセージ数を表示する方法を示しています。

ユーザー作成フォルダーのみ取得

PST/OST ファイルには、ユーザーが作成したフォルダー(すべての標準 IPM フォルダーを除く)が含まれる場合があります。Aspose.Email は、only_folders_created_by_user プロパティを使用してユーザー作成フォルダーのみにアクセスする機能を提供します。 PersonalStorageQueryBuilder クラスです。このプロパティを True に設定すると、ユーザー作成のフォルダーのみを取得できます。以下のコードスニペットは、プロジェクトで only_folders_created_by_user プロパティを使用する方法を示しています。

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

query_builder = ae.storage.pst.PersonalStorageQueryBuilder()
query_builder.only_folders_created_by_user.equals(True)

folders = pst.root_folder.get_sub_folders(query_builder.get_query())

for folder in folders:
    print(f"Folder: {folder.display_name}")

事前定義フォルダーの識別

PST ファイル内のフォルダーが標準フォルダーかどうかを確認するには、get_predefined_type メソッドを使用します。 FolderInfo クラスです。標準(または事前定義)フォルダーは、ユーザーが作成したフォルダーとは異なり、Outlook がメールアカウントを追加した際に自動的に作成するフォルダーで、受信トレイ、送信済みアイテム、下書き、削除済みアイテム、カレンダー、タスク、メモなどが含まれます。

以下のコードサンプルは、プロジェクトでこのメソッドを使用する方法を示しています。True に設定すると、最上位の親フォルダーの事前定義タイプを返します。これにより、現在のフォルダーが事前定義フォルダーのサブフォルダーかどうかが判断されます。False に設定すると、現在のフォルダーの事前定義タイプが返されます。

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

folders = pst.root_folder.get_sub_folders()

for folder in folders:
    print(f"Folder: {folder.display_name}")
    print(f"Is predefined: {folder.get_predefined_type(False) != ae.storage.pst.StandardIpmFolder.UNSPECIFIED}")
    print("-----------------------------------")

PersonalStorage における RSS フィードの管理

Aspose.Email は、RSS フィードの事前定義フォルダーへの参照を取得する機能を提供し、開発者が Outlook PST ファイルに保存された RSS フィードにプログラムでアクセスおよび操作できるようにします。「RSS フィードフォルダー」の参照を取得することで、開発者は新しいフィードの購読、既存フィードの更新、フィードからの情報抽出などの操作が可能になります。

RssFeeds の値は、 StandardIpmFolder この列挙型は、Outlook PST ファイル内で RSS フィードを保存するために特別に設計された事前定義フォルダータイプを表すものです。この列挙値を使用すると、開発者はプログラム上で「RSS フィードフォルダー」を対象に操作できます。以下のコードサンプルは、この機能をプロジェクトに実装する方法を示します。

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

rss_folder = pst.get_predefined_folder(ae.storage.pst.StandardIpmFolder.RSS_FEEDS)

RSS フィードフォルダーを追加するには、以下のコードスニペットを使用してください。

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

rss_folder = pst.create_predefined_folder("RSS Feeds", ae.storage.pst.StandardIpmFolder.RSS_FEEDS)

検索可能フォルダーの解析

Aspose.Email は FolderKind 異なる種類の PST フォルダーで作業するための列挙です。NORMAL フォルダーに加えて、SEARCH フォルダーでも機能します。SEARCH フォルダーは、特定の検索条件に一致するすべてのメール項目のビューを提供する仮想フォルダーです。SEARCH フォルダーを解析するには、以下のコードスニペットを使用してください。

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

folders = pst.root_folder.get_sub_folders(ae.storage.pst.FolderKind.SEARCH | ae.storage.pst.FolderKind.NORMAL)

# Browse through each folder to display folder name and number of messages
for folder in folders:
    print(f"Folder: {folder.display_name}")
    sub_folders = folder.get_sub_folders(ae.storage.pst.FolderKind.SEARCH | ae.storage.pst.FolderKind.NORMAL)
    for sub_folder in sub_folders:
        print(f"Sub-folder: {folder.display_name}")

親フォルダー情報の取得

以下のコード スニペットは、次から親フォルダー情報を取得する方法を示します: MessageInfo.

パスで PST のサブフォルダーを取得する

パスで PST のサブフォルダーを取得するには、get_sub_folder メソッドを使用します。 FolderInfo クラスです。ディレクトリまたはファイルシステム内の特定のサブフォルダーを取得します。

このメソッドは以下のパラメーターを受け取ります:

  • name - 取得するサブフォルダーの名前を表します。メソッドが検索すべきサブフォルダーの名前または識別子を指定するために使用されます。

  • ignore_case - サブフォルダー名の比較時に大文字小文字の違いを無視するかどうかを決定するブール値です。True に設定すると、ケースを考慮せずに名前を一致させます(例: "folder" と "Folder" は同一とみなされます)。False に設定すると、ケースセンシティブな比較を行います。

  • handle_path_separator - メソッドがサブフォルダーを検索する際にパス区切り文字を処理すべきかどうかを指定するブール値です。パス区切り文字は、ディレクトリパスでフォルダーを区切る文字(例: Windows の "\" や Unix の "/")です。True に設定すると、メソッドはパス区切り文字を自動的に処理し、正しいフォルダーの一致を保証します。False に設定すると、パス区切り文字をサブフォルダー名の一部として扱い、検索動作が変わります。

以下のコードサンプルは、パスで PST のサブフォルダーを取得する方法を示しています。

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

# In this sample, the method will return a ‘Jan’ named folder
# that is located at the Inbox\Reports\ path 
# relative to the root folder.
folder = pst.root_folder.get_sub_folder("Inbox\Reports\Jan", True, True)