Чтение файлов MS Outlook PST в C# .NET

Файл Личных Папок (.pst) — это файл данных Outlook, который хранит ваши сообщения и другие элементы на вашем компьютере. Это самый распространённый файл, в котором сохраняется информация в Outlook. Вы можете экспортировать, создавать резервные копии, восстанавливать и защищать паролем PST файл с помощью самого Outlook. Некоторые пользователи Outlook предпочитают защищать свои PST файлы паролем, чтобы свести возможность шпионажа к нулю. Защитить любой PST файл в Outlook возможно:

  1. Откройте Outlook и перейдите в Файл > Настройки учетной записи > Настройки учетной записи.
  2. В окне Настройки учетной записи выберите PST файл, для которого хотите установить пароль. Затем нажмите Настройки.
  3. В окне Файл данных Outlook нажмите кнопку Изменить пароль.

В этой статье мы узнаем, как работать с защищёнными паролем PST файлами в C# .NET.

Как это работает внутри?

Интересно, что защита файлов PST Outlook, защищённых паролем, фактически реализуется только в Outlook; потоки данных совсем не шифруются. Это позволяет использовать некоторые API для сброса пароля или извлечения электронных писем без знания пароля с помощью API, таких как Aspose.Email для .NET.

C# .NET API для работы с защищёнными паролем PST файлами

Aspose.Email для .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. Свойство PersonalStorage.Store.IsPasswordProtected возвращает true, если PST файл защищён паролем, и 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() используется для добавления, изменения или удаления пароля.

Для этого выполните следующие шаги:

  • Сначала загрузите 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);

Получите бесплатную лицензию API

Вы можете получить бесплатную временную лицензию для использования Aspose.Email для .NET без ограничений на оценку.

Заключение

В этой статье вы узнали, как управлять защищёнными паролем файлами с использованием C#. Более того, вы увидели, как читать информацию о папках, читать электронные письма и извлекать элементы из PST файла на C#. Кроме того, вы можете узнать больше о Aspose.Email для .NET, используя документацию. Также вы можете задать ваши вопросы или запросы на нашем форуме.

См. также