使用 PST 密码保护

使用 PST 密码保护

Microsoft Outlook 允许用户使用密码保护 PST 文件,以限制对其访问。Aspose.Email 能检测 PST 文件的密码保护。密码保护实际上仅在 Outlook 中实现,数据根本未加密。这使得可以在不知道密码的情况下使用 API 提取电子邮件。

读取受密码保护的 PST 文件

您可以像读取普通未受保护的 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 属性的重载版本。 PersonalStorage.Store.IsPasswordProtected 属性在 PST 文件受密码保护时返回 true,否则返回 false。

以下代码片段演示了如何使用 PersonalStorage.Store.IsPasswordProtected 属性。

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

验证密码

PersonalStorage.Store.IsPasswordValid() 该方法接受字符串密码作为参数,若密码正确返回 true,若不正确返回 false。

以下代码片段演示了如何使用 PersonalStorage.Store.IsPasswordValid() 方法。

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

添加/更改/移除密码

PersonalStorage.Store.ChangePassword 该方法用于添加、更改或删除密码。

为此,请按以下步骤操作:

  • 从文件或流加载 PST。
  • 调用 PersonalStorage.Store.ChangePassword 方法。要添加或更改密码,将密码字符串作为参数传入;要移除密码,传入 null 值。
using var pst = PersonalStorage.Create("SetPasswordOnPST_out.pst", FileFormatVersion.Unicode);
// Add or change the password
const string password = "Password1";
pst.Store.ChangePassword(password);
// Remove the password
pst.Store.ChangePassword(null);