Odczyt plików OLM MS Outlook w C# .NET

OLM to format pliku, który Microsoft Outlook dla Mac używa do przechowywania danych lokalnych. OLM zawiera dane lokalne, takie jak e-maile, załączniki, notatki, dane kalendarza, kontakty, zadania, historia itp. Pliki OLM są używane przez Outlook dla Mac. Outlook dla Windows nie ma dostępu do tych plików ani nie może ich otworzyć. Wersja Outlooka dla Windows obsługuje tylko format pliku PST do przechowywania danych. W tym artykule rozważymy jak otworzyć i odczytać pliki w formacie OLM z aplikacji C#.

C# .NET API do odczytu plików OLM

Aspose.Email dla .NET to solidne API, które oferuje szereg funkcji do implementacji aplikacji e-mailowych. Umożliwia również odczyt plików OLM i innych formatów przechowywania wiadomości, takich jak MBOX, PST/OST. Możesz zainstalować bibliotekę za pomocą NuGet lub pobrać jej DLL.

PM> Install-Package Aspose.Email

Otwieranie plików w formacie OLM

API Aspose.Email wprowadza dwa sposoby otwierania plików w formacie OLM:

Istnieją różnice w zachowaniu między tymi metodami. Zobacz sekcję poniżej.

Otwieranie pliku za pomocą konstruktora

Aby otworzyć plik, należy wywołać konstruktor klasy OlmStorage i przekazać pełną nazwę pliku lub strumień jako argument:

Otwieranie pliku za pomocą statycznej metody FromFile

Aby otworzyć plik, należy użyć statycznej metody FromFile i przekazać pełną nazwę pliku lub strumień jako argument:

Uzyskiwanie folderów

Po otwarciu pliku za pomocą konstruktora, dostępna będzie właściwość FolderHierarchy. Zwraca ona listę katalogów, które istnieją w pliku OLM. Każdy obiekt klasy OlmFolder z listy ma właściwość SubFolders, która zwraca listę podfolderów. W ten sposób mamy dostęp do wszystkich katalogów w OLM.

Przykład poniżej wyświetla listę wszystkich folderów w porządku hierarchicznym:

Jeśli otwierasz plik za pomocą metody FromFile, to domyślnie właściwość FolderHierarchy nie zostanie zainicjowana i zwróci null. W takim przypadku konieczne jest jawne wywołanie metody GetFolders:

Możesz także uzyskać dowolny folder po nazwie. Aby to zrobić, powinieneś:

  • wywołać metodę GetFolder

  • przekazać nazwę folderu jako pierwszy argument oraz wartość, która określa, czy ignorować wielkość liter podczas wyszukiwania folderu, jako drugi parametr.

Lista e-maili

Klasa OlmFolder, która reprezentuje folder, ma następujące metody do uzyskania listy e-maili:

  • EnumerateMessages implementuje iterację e-maili w folderze. W tym przypadku każda iteracja zwraca obiekt OlmMessageInfo, który dostarcza krótkie informacje o e-mailu.

  • EnumerateMapiMessages, również implementuje iterację e-maili w folderze, ale w tym przypadku każda iteracja zwraca obiekt MapiMessage, który reprezentuje sam e-mail, ze wszystkimi właściwościami.

Użycie metody EnumerateMessages

Użycie metody EnumerateMapiMessages

Inne użyteczne właściwości

Klasa OlmFolder ma również właściwości HasMessages i MessageCount, które zwracają informację o obecności wiadomości w folderze oraz ich liczbie:

Ekstrakcja e-maili

Klasa OlmStorage ma metodę ExtractMapiMessage, która umożliwia ekstrakcję e-maila. Ta metoda przyjmuje obiekt OlmMessageInfo.

Wnioski

W tym artykule nauczyłeś się, jak odczytywać pliki OLM w C#. Zobaczyłeś sposoby uzyskiwania listy folderów i ekstrakcji wiadomości z pliku OLM. Ponadto możesz dowiedzieć się więcej o Aspose.Email dla .NET korzystając z dokumentacji. Możesz również podzielić się swoimi pytaniami lub prośbami na naszym forum.

Zobacz także