Read MS Outlook OLM Files in C# .NET

OLM é um formato de arquivo que o Microsoft Outlook para Mac usa para armazenar dados locais. O OLM contém dados locais como e-mails, anexos, notas, dados de calendário, contatos, tarefas, histórico, etc. Os arquivos OLM são usados pelo Outlook para Mac. O Outlook para Windows não pode acessar ou abri-los. A versão do Outlook para Windows suporta apenas o formato de arquivo PST para armazenar dados. Neste artigo, consideraremos como abrir e ler arquivos no formato OLM a partir de aplicações C#.

API C# .NET para Ler Arquivos OLM

Aspose.Email for .NET é uma API robusta que fornece uma variedade de recursos para implementar aplicações de e-mail. Além disso, permite a leitura de arquivos OLM e outros formatos de armazenamento de e-mail, como MBOX, PST/OST. Você pode instalar a biblioteca via NuGet ou baixar sua DLL.

PM> Install-Package Aspose.Email

Abrindo arquivos no formato OLM

Aspose.Email API introduz duas maneiras de abrir arquivos no formato OLM:

Existem diferenças de comportamento entre esses métodos. Veja a seção abaixo.

Abrindo arquivo pelo construtor

Para abrir um arquivo, você deve chamar o construtor da classe OlmStorage e passar o nome completo do arquivo ou stream como argumento:

Abrindo arquivo usando o método estático FromFile

Para abrir o arquivo, você deve usar o método estático FromFile e passar o nome completo do arquivo ou stream como argumento:

Obtendo pastas

Depois de abrir o arquivo usando o construtor, ele estará acessível pela propriedade FolderHierarchy. Ela retorna uma lista de diretórios que existem no arquivo OLM. Cada objeto da classe OlmFolder da lista tem a propriedade SubFolders, que retorna uma lista de subpastas. Assim, temos acesso a todos os diretórios no OLM.

O exemplo abaixo exibe a lista de todas as pastas em ordem hierárquica:

Se você abrir o arquivo usando o método FromFile, então, por padrão, a propriedade FolderHierarchy não será inicializada e retornará null. Nesse caso, é necessário chamar explicitamente o método GetFolders:

Além disso, é possível obter qualquer pasta pelo nome. Para isso, você deve:

  • chamar o método GetFolder

  • passar o nome da pasta como primeiro argumento e um valor que indica se deve ignorar a diferenciação entre maiúsculas e minúsculas ao procurar uma pasta, como segundo parâmetro.

Lista de e-mails

A classe OlmFolder, que representa uma pasta, possui os seguintes métodos para obter a lista de e-mails:

  • EnumerateMessages implementa a iteração de e-mails em uma pasta. Nesse caso, cada iteração retorna um objeto OlmMessageInfo, que fornece informações resumidas sobre o e-mail.

  • EnumerateMapiMessages também implementa a iteração de e-mails em uma pasta, mas nesse caso, cada iteração retorna um objeto MapiMessage, que representa o próprio e-mail, com todas as propriedades.

Usando o método EnumerateMessages

Usando o método EnumerateMapiMessages

Outras propriedades úteis

Além disso, a classe OlmFolder possui as propriedades HasMessages e MessageCount, que retornam a presença de mensagens na pasta e sua contagem:

Extraindo e-mails

A classe OlmStorage possui o método ExtractMapiMessage, que permite extrair e-mails. Este método recebe um objeto OlmMessageInfo.

Conclusão

Neste artigo, você aprendeu como ler arquivos OLM em C#. Você viu as maneiras de obter a lista de pastas e extrair mensagens do arquivo OLM. Além disso, você pode aprender mais sobre Aspose.Email for .NET usando a documentação. Você também pode compartilhar suas perguntas ou solicitações em nosso fórum.

Veja Também