Đọc tệp PST của Outlook, Truy xuất Thông tin Thư mục và Thư mục con
Aspose.Email cho .NET cung cấp một API để đọc các tệp PST của Microsoft Outlook. Bạn có thể tải một tệp PST từ đĩa hoặc luồng vào một thể hiện của PersonalStorage lớp để truy cập thông tin chi tiết về nội dung của nó, chẳng hạn như thư mục, thư mục con và tin nhắn. Ngoài ra, API cung cấp chức năng bao gồm thư mục tìm kiếm khi truy xuất tin nhắn từ các thư mục PST.
Tải tệp PST
Một tệp PST của Outlook có thể được tải vào một thể hiện của PersonalStorage lớp. Đoạn mã sau cho bạn thấy cách tải tệp PST.
Hiển thị Thông tin PST
Sau tải một tệp PST, bạn có thể lấy thông tin về tên hiển thị của tệp, thư mục gốc, thư mục con và số lượng tin nhắn. Đoạn mã sau cho bạn thấy cách hiển thị tên tệp PST, các thư mục và số lượng tin nhắn trong các thư mục:
Chỉ Lấy Thư mục do Người dùng Tạo
tệp PST/OST có thể chứa các thư mục được người dùng tạo, tức là loại trừ tất cả các thư mục IPM chuẩn. Aspose.Email cung cấp chức năng để truy cập chỉ các thư mục do người dùng tạo bằng cách sử dụng thuộc tính only_folders_created_by_user của PersonalStorageQueryBuilder lớp. Bạn có thể đặt thuộc tính này thành True để chỉ lấy các thư mục do người dùng tạo. Đoạn mã sau minh họa cách bạn có thể sử dụng thuộc tính only_folders_created_by_user trong dự án của mình:
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}")
Xác định các Thư mục Được Định sẵn
Để biết một thư mục trong tệp PST có phải là thư mục chuẩn hay không, sử dụng phương thức get_predefined_type của FolderInfo lớp. Các thư mục chuẩn (hoặc được định sẵn), ngược lại với các thư mục do người dùng tạo, là các thư mục mà Outlook tạo khi bạn thêm tài khoản email như Hộp thư đến, Thư đã gửi, Bản nháp, Thư đã xóa, Lịch, Nhiệm vụ, Ghi chú, v.v.
Mẫu mã dưới đây minh họa cách sử dụng phương thức này trong một dự án. Nếu đặt thành True, nó trả về loại được định sẵn cho thư mục cha cấp cao nhất. Điều này xác định liệu thư mục hiện tại có phải là thư mục con của một thư mục được định sẵn hay không. Nếu đặt thành False, nó trả về loại được định sẵn cho thư mục hiện tại.
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("-----------------------------------")
Quản lý RSS Feeds trong PersonalStorage
Aspose.Email cung cấp chức năng để lấy tham chiếu đến thư mục RSS Feeds được định sẵn, cho phép các nhà phát triển truy cập và thao tác RSS feeds được lưu trong tệp PST của Outlook một cách lập trình. Bằng cách lấy tham chiếu tới "thư mục RSS Feeds", các nhà phát triển có thể làm việc với dữ liệu RSS feed, bao gồm đăng ký các feed mới, cập nhật các feed hiện có, hoặc trích xuất thông tin từ các feed.
Giá trị của RssFeeds trong StandardIpmFolder enum thường đại diện cho loại thư mục được định sẵn, được thiết kế đặc biệt để lưu trữ RSS feeds trong một tệp PST của Outlook. Sử dụng giá trị enum này, các nhà phát triển có thể nhắm mục tiêu và tương tác với "thư mục RSS Feeds" một cách lập trình. Các mẫu mã sau sẽ minh họa cách triển khai tính năng này vào dự án của bạn:
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)
Để thêm thư mục RSS Feeds, sử dụng đoạn mã sau:
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)
Phân tích Thư mục có thể Tìm kiếm
Aspose.Email cung cấp một FolderKind liệt kê để làm việc với các loại thư mục PST khác nhau. Ngoài các thư mục NORMAL, nó còn làm việc với các thư mục SEARCH. Thư mục SEARCH là một thư mục ảo cung cấp cái nhìn tổng quan về tất cả các mục email khớp với tiêu chí tìm kiếm cụ thể. Để phân tích các thư mục SEARCH, sử dụng đoạn mã sau:
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}")
Truy xuất Thông tin Thư mục Cha
Đoạn mã mẫu sau cho bạn thấy cách truy xuất thông tin thư mục cha từ MessageInfo.
Truy xuất Thư mục con PST theo Đường dẫn
Để truy xuất một thư mục con PST theo đường dẫn, sử dụng phương thức get_sub_folder của FolderInfo lớp. Nó truy xuất một thư mục con cụ thể trong một thư mục hoặc hệ thống tệp.
Phương thức nhận các tham số sau:
-
name - đại diện cho tên của thư mục con cần được truy xuất. Nó được sử dụng để chỉ định tên hoặc định danh của thư mục con mà phương thức sẽ tìm kiếm.
-
ignore_case - là một giá trị boolean xác định liệu phương thức có nên bỏ qua độ phân biệt chữ hoa/thường khi so sánh tên thư mục con hay không. Nếu đặt là True, phương thức sẽ coi các tên trùng khớp mà không xét đến chữ hoa/thường (ví dụ, "folder" và "Folder" sẽ được coi là giống nhau). Nếu đặt là False, phương thức sẽ thực hiện so sánh phân biệt chữ hoa/thường.
-
handle_path_separator - là một giá trị boolean chỉ định liệu phương thức có nên xử lý ký tự phân tách đường dẫn khi tìm kiếm thư mục con hay không. Ký tự phân tách đường dẫn là các ký tự dùng để tách các thư mục trong một đường dẫn (ví dụ, "\" trên Windows hoặc "/" trên Unix). Nếu đặt là True, phương thức sẽ tự động xử lý ký tự phân tách, đảm bảo khớp đúng thư mục. Nếu đặt là False, nó sẽ coi ký tự phân tách là một phần của tên thư mục con, dẫn đến hành vi tìm kiếm khác.
Đoạn mã mẫu dưới đây cho thấy cách truy xuất một thư mục con PST theo đường dẫn:
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)