
OLM — это формат файла, который Microsoft Outlook для Mac использует для хранения локальных данных. OLM содержит локальные данные, такие как электронные письма, вложения, заметки, данные календаря, контакты, задачи, историю и т. д. Файлы OLM используются Outlook для Mac. Outlook для Windows не может получить доступ к ним или открыть их. Версия Outlook для Windows поддерживает только формат файла PST для хранения данных. В этой статье мы рассмотрим как открыть и прочитать файлы формата OLM из приложений C#.
- C# .NET API для чтения файлов OLM
- Открытие файлов формата OLM
- Получение папок
- Список электронных писем
- Извлечение электронных писем
C# .NET API для чтения файлов OLM
Aspose.Email для .NET — это мощный API, который предоставляет множество функций для реализации приложений электронной почты. Кроме того, он позволяет читать файлы OLM и другие форматы хранения почты, такие как MBOX, PST/OST. Вы можете установить библиотеку через NuGet или скачать ее DLL.
PM> Install-Package Aspose.Email
Открытие файлов формата OLM
Aspose.Email API предоставляет два способа открытия файлов формата OLM:
с помощью конструктора
с использованием статического метода FromFile
Существует различие в поведении между этими методами. См. раздел ниже.
Открытие файла с помощью конструктора
Чтобы открыть файл, вы должны вызвать конструктор класса OlmStorage и передать полное имя файла или поток в качестве аргумента:
Открытие файла с использованием статического метода FromFile
Чтобы открыть файл, вы должны использовать статический метод FromFile и передать полное имя файла или поток в качестве аргумента:
Получение папок
После открытия файла с помощью конструктора, будет доступно свойство FolderHierarchy. Оно возвращает список каталогов, которые существуют в файле OLM. Каждый объект класса OlmFolder из списка имеет свойство SubFolders, которое возвращает список подпапок. Таким образом, у нас есть доступ ко всем каталогам в OLM.
Пример ниже отображает список всех папок в иерархическом порядке:
Если открыть файл с помощью метода FromFile, то по умолчанию свойство FolderHierarchy не будет инициализировано и вернет null
. В этом случае необходимо явно вызвать метод GetFolders:
Также можно получить любую папку по имени. Для этого вы должны:
вызвать метод GetFolder
передать имя папки в качестве первого аргумента и значение, указывающее, следует ли игнорировать регистронезависимость при поиске папки, в качестве второго параметра.
Список электронных писем
Класс OlmFolder, который представляет папку, имеет следующие методы для получения списка электронных писем:
EnumerateMessages реализует итерацию по электронным письмам в папке. В этом случае каждая итерация возвращает объект OlmMessageInfo, который предоставляет краткую информацию о письме.
EnumerateMapiMessages также реализует итерацию по электронным письмам в папке, но в этом случае каждая итерация возвращает объект MapiMessage, который представляет само письмо со всеми свойствами.
Использование метода EnumerateMessages
Использование метода EnumerateMapiMessages
Другие полезные свойства
Также класс OlmFolder имеет свойства HasMessages и MessageCount, которые возвращают наличие сообщений в папке и их количество:
Извлечение электронных писем
Класс OlmStorage имеет метод ExtractMapiMessage, который позволяет извлекать электронные письма. Этот метод принимает объект OlmMessageInfo.
Заключение
В этой статье вы узнали, как читать файлы OLM в C#. Вы увидели способы получения списка папок и извлечения сообщений из файла OLM. Кроме того, вы можете узнать больше о Aspose.Email для .NET, воспользовавшись документацией. Также вы можете задать свои вопросы или запросы на нашем форуме.