קרא קבצי Outlook PST, השג מידע על תיקיות ותיקיות משנה

Aspose.Email עבור .NET מספקת API לקריאת קבצי Microsoft Outlook PST. ניתן לטעון קובץ 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 כאשר מוסיפים חשבון דוא"ל כגון Inbox, Sent Items, Drafts, Deleted Items, Calendar, Tasks, Notes ועוד.

דוגמת הקוד שלהלן מדגימה כיצד להשתמש במתודה זו בפרויקט. אם מוגדר ל‑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("-----------------------------------")

ניהול עדכוני RSS ב‑PersonalStorage

Aspose.Email מספקת פונקציונליות לקבלת הפנייה לתיקיית RSS Feeds מוגדרת מראש, המאפשרת למפתחים לגשת ולנהל את עדכוני RSS השמורים בקובץ Outlook PST בצורה תכנית. על‑ידי קבלת הפנייה ל"תיקיית RSS Feeds", המפתחים יכולים לעבוד עם נתוני ה‑RSS, כולל הרשמה לעדכונים חדשים, עדכון עדכונים קיימים או חילוץ מידע מהעדכונים.

הערך של RssFeeds ב‑ StandardIpmFolder ה‑enum מייצג בדרך כלל את סוג התיקייה המוגדרת מראש המיועדת לאחסון העדכונים של RSS בתוך קובץ Outlook PST. באמצעות ערך enum זה, מפתחים יכולים לכוון ולפעול עם "תיקיית RSS Feeds" בתוכנית. דוגמאות הקוד הבאות מדגימות כיצד ליישם תכונה זו בפרויקט שלכם:

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 Feeds, השתמש בקטע הקוד הבא:

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 אוסף ערכים (enumeration) לעבודה עם סוגים שונים של תיקיות 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)