
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
- Abrindo arquivos no formato OLM
- Obtendo pastas
- Lista de e-mails
- Extraindo e-mails
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:
usando construtor
usando o método estático FromFile
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.