Outlook‑PST‑Dateien lesen, Ordner‑ und Unterordner‑Informationen abrufen
Aspose.Email für .NET stellt eine API zum Lesen von Microsoft Outlook‑PST‑Dateien bereit. Sie können eine PST‑Datei von der Festplatte oder aus einem Stream in eine Instanz der PersonalStorage Klasse, um detaillierte Informationen über deren Inhalte wie Ordner, Unterordner und Nachrichten abzurufen. Zusätzlich bietet die API die Möglichkeit, Suchordner beim Abrufen von Nachrichten aus PST‑Ordnern einzubeziehen.
Laden einer PST‑Datei
Eine Outlook‑PST‑Datei kann in einer Instanz der PersonalStorage Klasse. Das folgende Code‑Snippet zeigt, wie Sie die PST‑Datei laden.
Anzeige von PST‑Informationen
Nach Laden einer PST‑Datei, erhalten Sie Informationen über den Anzeigenamen der Datei, den Stammordner, Unterordner und die Nachrichtenanzahl. Das folgende Code‑Snippet zeigt, wie Sie den Namen der PST‑Datei, Ordner und die Anzahl der Nachrichten in den Ordnern anzeigen:
Nur benutzererstellte Ordner abrufen
PST/OST‑Dateien können Ordner enthalten, die von einem Benutzer erstellt wurden, d. h. alle Standard‑IPM‑Ordner werden ausgeschlossen. Aspose.Email bietet die Möglichkeit, ausschließlich benutzererstellte Ordner über die Eigenschaft only_folders_created_by_user der PersonalStorageQueryBuilder Klasse. Sie können diese Eigenschaft auf True setzen, um nur benutzererstellte Ordner zu erhalten. Das folgende Code‑Snippet zeigt, wie Sie die Eigenschaft only_folders_created_by_user in Ihrem Projekt verwenden können:
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}")
Identifizieren vordefinierter Ordner
Um herauszufinden, ob ein Ordner innerhalb einer PST‑Datei ein Standardordner ist, verwenden Sie die Methode get_predefined_type der FolderInfo Klasse. Standard‑ (oder vordefinierte) Ordner, im Gegensatz zu benutzer erstellten Ordnern, sind solche, die Outlook beim Hinzufügen eines E‑Mail‑Kontos erstellt, z. B. Posteingang, Gesendete Elemente, Entwürfe, Gelöschte Elemente, Kalender, Aufgaben, Notizen usw.
Das nachstehende Code‑Beispiel demonstriert die Verwendung dieser Methode in einem Projekt. Ist der Wert auf True gesetzt, wird der vordefinierte Typ des übergeordneten Ordners auf oberster Ebene zurückgegeben. Damit wird ermittelt, ob der aktuelle Ordner ein Unterordner eines vordefinierten Ordners ist. Ist er auf False gesetzt, wird der vordefinierte Typ des aktuellen Ordners zurückgegeben.
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("-----------------------------------")
Verwalten von RSS‑Feeds in PersonalStorage
Aspose.Email bietet die Funktionalität, eine Referenz zu einem vordefinierten RSS‑Feeds‑Ordner abzurufen, sodass Entwickler programmgesteuert auf die in einer Outlook‑PST‑Datei gespeicherten RSS‑Feeds zugreifen und sie manipulieren können. Durch das Abrufen einer Referenz zum „RSS‑Feeds‑Ordner“ können Entwickler mit den RSS‑Feed‑Daten arbeiten, z. B. neue Feeds abonnieren, bestehende Feeds aktualisieren oder Informationen aus den Feeds extrahieren.
Der Wert von RssFeeds im StandardIpmFolder Das Enum würde typischerweise den vordefinierten Ordnertyp darstellen, der speziell für das Speichern von RSS‑Feeds innerhalb einer Outlook‑PST‑Datei vorgesehen ist. Mit diesem Enum‑Wert können Entwickler programmgesteuert auf den „RSS‑Feeds‑Ordner“ zugreifen und ihn manipulieren. Die folgenden Code‑Beispiele zeigen, wie Sie diese Funktion in Ihr Projekt integrieren können:
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)
Um einen RSS‑Feeds‑Ordner hinzuzufügen, verwenden Sie das folgende Code‑Snippet:
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)
Durchsuchen von durchsuchbaren Ordnern
Aspose.Email stellt ein FolderKind Enumeration, um mit verschiedenen Arten von PST‑Ordnern zu arbeiten. Neben NORMAL‑Ordnern funktioniert sie mit SEARCH‑Ordnern. Ein SEARCH‑Ordner ist ein virtueller Ordner, der eine Ansicht aller E‑Mail‑Elemente bietet, die bestimmten Suchkriterien entsprechen. Um SEARCH‑Ordner zu verarbeiten, verwenden Sie das folgende Code‑Snippet:
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}")
Abrufen von übergeordneten Ordnerinformationen
Das folgende Code‑Snippet zeigt, wie Sie Informationen zum übergeordneten Ordner abrufen können von MessageInfo.
Abrufen eines PST‑Unterordners anhand des Pfads
Um einen PST‑Unterordner anhand seines Pfads abzurufen, verwenden Sie die Methode get_sub_folder der FolderInfo Klasse. Sie ruft einen bestimmten Unterordner innerhalb eines Verzeichnisses oder Dateisystems ab.
Die Methode akzeptiert die folgenden Parameter:
-
name – gibt den Namen des abzurufenden Unterordners an. Er wird verwendet, um den Namen oder die Kennung des Unterordners zu spezifizieren, nach dem die Methode suchen soll.
-
ignore_case – ist ein boolescher Wert, der festlegt, ob die Methode bei der Namensvergleich des Unterordners die Groß‑ und Kleinschreibung ignorieren soll. Ist er auf True gesetzt, wird die Namensübereinstimmung ohne Berücksichtigung der Groß‑/Kleinschreibung geprüft (z. B. "folder" und "Folder" gelten als gleich). Ist er auf False gesetzt, erfolgt ein prüfungsgerechter Vergleich.
-
handle_path_separator – ist ein boolescher Wert, der angibt, ob die Methode beim Suchen des Unterordners das Pfadtrennzeichen berücksichtigen soll. Pfadtrennzeichen sind Zeichen, die Ordner in einem Verzeichnispfad trennen (z. B. "\" unter Windows oder "/" unter Unix). Ist er auf True gesetzt, verarbeitet die Methode das Pfadtrennzeichen automatisch und sorgt für korrekte Ordnerzuordnung. Ist er auf False gesetzt, wird das Pfadtrennzeichen als Teil des Ordnernamens behandelt, was ein anderes Suchverhalten bewirkt.
Das folgende Code‑Beispiel zeigt, wie Sie einen PST‑Unterordner anhand seines Pfads abrufen:
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)