Odczyt plików Outlook PST, pobieranie informacji o folderach i podfolderach

Aspose.Email dla .NET udostępnia API do odczytu plików Microsoft Outlook PST. Możesz wczytać plik PST z dysku lub strumienia do instancji klasy PersonalStorage klasa, aby uzyskać szczegółowe informacje o jej zawartości, takie jak foldery, podfoldery i wiadomości. Dodatkowo API umożliwia uwzględnienie folderów wyszukiwania przy pobieraniu wiadomości z folderów PST.

Wczytywanie pliku PST

Plik Outlook PST może zostać wczytany w instancji klasy PersonalStorage klasa. Poniższy fragment kodu pokazuje, jak wczytać plik PST.

Wyświetlanie informacji o PST

Po wczytywanie pliku PST, możesz uzyskać informacje o nazwie wyświetlanej pliku, folderze głównym, podfolderach oraz liczbie wiadomości. Poniższy fragment kodu pokazuje, jak wyświetlić nazwę pliku PST, foldery oraz liczbę wiadomości w folderach:

Pobieranie wyłącznie folderów utworzonych przez użytkownika

Pliki PST/OST mogą zawierać foldery utworzone przez użytkownika, czyli wyłączając wszystkie standardowe foldery IPM. Aspose.Email zapewnia możliwość dostępu wyłącznie do folderów tworzonych przez użytkownika przy użyciu właściwości only_folders_created_by_user klasy PersonalStorageQueryBuilder klasa. Możesz ustawić tę właściwość na True, aby uzyskać tylko foldery stworzone przez użytkownika. Poniższy fragment kodu demonstruje, jak używać właściwości only_folders_created_by_user w projekcie:

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

Identyfikowanie wstępnie zdefiniowanych folderów

Aby sprawdzić, czy folder w pliku PST jest folderem standardowym, użyj metody get_predefined_type klasy FolderInfo klasa. Standardowe (lub wstępnie zdefiniowane) foldery, w przeciwieństwie do folderów tworzonych przez użytkownika, są folderami tworzonymi przez Outlook podczas dodawania konta e‑mail, takimi jak Skrzynka odbiorcza, Elementy wysłane, Szkice, Usunięte, Kalendarz, Zadania, Notatki itp.

Przykład kodu poniżej demonstruje, jak używać tej metody w projekcie. Jeśli ustawiono na True, zwraca wstępnie zdefiniowany typ dla folderu nadrzędnego najwyższego poziomu. Określa to, czy bieżący folder jest podfolderem wstępnie zdefiniowanego folderu. Jeśli ustawiono na False, zwraca wstępnie zdefiniowany typ dla bieżącego folderu.

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

Zarządzanie kanałami RSS w PersonalStorage

Aspose.Email zapewnia funkcjonalność umożliwiającą uzyskanie odniesienia do wstępnie zdefiniowanego folderu Kanały RSS, co pozwala programistom na programowy dostęp i manipulację kanałami RSS przechowywanymi w pliku Outlook PST. Uzyskując odwołanie do "folderu RSS Feeds", programiści mogą pracować z danymi kanałów RSS, co może obejmować subskrypcję nowych kanałów, aktualizację istniejących lub wyodrębnianie informacji z kanałów.

Wartość RssFeeds w StandardIpmFolder enum zazwyczaj reprezentuje wstępnie zdefiniowany typ folderu przeznaczonego do przechowywania kanałów RSS w pliku Outlook PST. Używając tej wartości enum, programiści mogą programowo celować i interactować z folderem "RSS Feeds". Poniższe przykłady kodu pokażą, jak wdrożyć tę funkcję w projekcie:

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)

Aby dodać folder Kanały RSS, użyj następującego fragmentu kodu:

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)

Parsowanie folderów możliwych do przeszukania

Aspose.Email zapewnia FolderKind enumeracja służąca do pracy z różnymi typami folderów PST. Poza folderami NORMAL działa również z folderami SEARCH. Folder SEARCH to wirtualny folder, który zapewnia widok wszystkich elementów e‑mail spełniających określone kryteria wyszukiwania. Aby parsować foldery SEARCH, użyj poniższego fragmentu kodu:

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

Pobieranie informacji o folderze nadrzędnym

Poniższy fragment kodu pokazuje, jak pobrać informacje o folderze nadrzędnym z MessageInfo.

Pobieranie podfolderu PST przy użyciu ścieżki

Aby pobrać podfolder PST przy użyciu ścieżki, użyj metody get_sub_folder klasy FolderInfo klasa. Pobiera konkretny podfolder w obrębie katalogu lub systemu plików.

Metoda przyjmuje następujące parametry:

  • name - reprezentuje nazwę podfolderu, który ma zostać pobrany. Służy do określenia nazwy lub identyfikatora podfolderu, którego metoda ma szukać.

  • ignore_case - jest wartością boolowską określającą, czy metoda powinna ignorować wielkość liter przy porównywaniu nazwy podfolderu. Jeśli ustawiono na True, metoda potraktuje dopasowanie nazw bez uwzględniania wielkości liter (np. "folder" i "Folder" będą traktowane tak samo). Jeśli ustawiono na False, zostanie wykonane porównanie uwzględniające wielkość liter.

  • handle_path_separator - jest wartością boolowską określającą, czy metoda powinna obsługiwać separator ścieżki podczas wyszukiwania podfolderu. Separatory ścieżki to znaki używane do oddzielania folderów w ścieżce katalogu (np. "\" w Windows lub "/" w Unix). Jeśli ustawiono na True, metoda automatycznie obsłuży separator ścieżki, zapewniając prawidłowe dopasowanie folderu. Jeśli ustawiono na False, traktuje separator jako część nazwy podfolderu, co skutkuje innym zachowaniem wyszukiwania.

Poniższy przykład kodu pokazuje, jak pobrać podfolder PST przy użyciu ścieżki:

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)