
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
- Otwieranie plików w formacie OLM
- Uzyskiwanie folderów
- Lista e-maili
- Ekstrakcja e-maili
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:
za pomocą konstruktora
za pomocą statycznej metody FromFile
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.