在 C# .NET 中讀取 MS Outlook PST 文件

個人文件夾文件 (.pst) 是一種 Outlook 數據文件,用於在您的計算機上存儲您的郵件和其他項目。這是保存 Outlook 信息的最常見文件。您可以使用 Outlook 本身導出、備份、還原和密碼保護 PST 文件。一些 Outlook 用戶喜歡對他們的 PST 文件進行密碼保護,以確保窺探的可能性為零。可以保護 Outlook 中的任何 PST 文件:

  1. 打開 Outlook 並轉到“文件”>“帳戶設置”>“帳戶設置”。
  2. 在“帳戶設置”窗口中,選擇要設置密碼的 PST 文件。然後點擊“設置”。
  3. 在“Outlook 數據文件”窗口中,單擊“更改密碼”按鈕。

在本文中,我們將學習如何在 C# .NET 中使用密碼保護的 pst 文件。

它在內部是如何運作的?

關於受密碼保護的 Outlook PST 文件的一件有趣的事情是保護實際上只在 Outlook 中實現;數據流根本沒有加密。並且它可以使用某些 API 來重置密碼或在不知道密碼的情況下使用 API 提取電子郵件,例如 Aspose.Email for .NET

用於處理受密碼保護的 PST 文件的 C# .NET API

Aspose.Email for .NET 是一個強大的 API,它提供了一系列功能來實現電子郵件應用程序。此外,它還允許讀取和修改 pst 和 ost 文件以及其他郵件存儲格式,例如 MBOX、OLM。您可以通過 NuGet下載 它的 DLL 安裝庫。

PM> Install-Package Aspose.Email

讀取受密碼保護的 PST 文件

使用 Aspose.Email,您可以像閱讀常規的未受保護的 pst 文件一樣閱讀受密碼保護的文件。

using var pst = PersonalStorage.FromFile(fileName);
foreach (var folder in pst.RootFolder.GetSubFolders())
{
    foreach (var msg in folder.EnumerateMessages())
    {

    }
}

檢查 PST 文件是否受密碼保護

API 提供 PersonalStorage.Store.IsPasswordProtected 屬性。如果 PST 文件受密碼保護,PersonalStorage.Store.IsPasswordProtected 屬性返回“true”,否則返回“false”。

要檢查文件是否受密碼保護,請按照下列步驟操作:

using var pst = PersonalStorage.FromFile("passwordprotectedPST.pst");
Console.WriteLine($"The storage is password protected - {pst.Store.IsPasswordProtected}");

在受密碼保護的 PST 中驗證密碼

PersonalStorage.Store.IsPasswordValid() 方法將字符串密碼作為參數,如果密碼正確則返回“true”,如果密碼不正確則返回“false”。

要驗證密碼,請執行以下步驟:

using var pst = PersonalStorage.FromFile("passwordprotectedPST.pst");
Console.WriteLine($"Password is valid - {pst.Store.IsPasswordValid("Password1")}");

添加、更改或刪除 PST 文件的密碼

PersonalStorage.Store.ChangePassword() 方法用於添加、更改或刪除密碼。

為此,請按照下列步驟操作:

using var pst = PersonalStorage.Create("SetPasswordOnPST_out.pst", FileFormatVersion.Unicode);
// 添加或更改密碼
const string password = "Password1";
pst.Store.ChangePassword(password);
// 刪除密碼
pst.Store.ChangePassword(null);

獲取免費的 API 許可證

您可以獲得免費的臨時許可證來使用Aspose.Email for .NET,沒有評估限制。

結論

在本文中,您學習瞭如何使用 C# 管理受密碼保護的文件。此外,您還了解瞭如何使用 C# 讀取文件夾信息、讀取電子郵件以及從 PST 文件中提取項目。此外,您可以使用 文檔 探索更多關於 Aspose.Email for .NET 的信息。此外,您可以在我們的 論壇 上分享您的問題或疑問。

也可以看看