Gerenciando arquivos Outlook para Mac OLM
OLM (Outlook for Mac Archive) é um formato de arquivo associado ao Microsoft Outlook para Mac. Ele é usado para arquivar e armazenar mensagens de e‑mail, contatos, itens de calendário, tarefas e outros dados do Outlook em computadores Mac. Os arquivos OLM servem como formato de backup ou arquivo, permitindo que os usuários salvem seus dados do Outlook para Mac para referência futura ou migração. É importante observar que os arquivos OLM são específicos do Outlook para Mac e não são compatíveis com o formato PST (Personal Storage Table) usado pelo Outlook no Windows. Se precisar transferir dados do Outlook entre diferentes plataformas, ferramentas de conversão serão úteis. Aspose.Email oferece essas ferramentas, incluindo abertura, leitura e outras funcionalidades para trabalhar com arquivos OLM.
Abrindo arquivos OLM do Outlook
Arquivos no formato OLM podem ser abertos de duas maneiras:
- usando o construtor
- usando o método estático ‘from_file’
Abrir arquivos OLM do Outlook usando construtores Python
Para abrir um arquivo, chame o construtor da OlmStorage classe e passe o nome completo do arquivo ou stream como argumento para ele:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
Abrir arquivos OLM usando o método estático FromFile do Python
Para abrir um arquivo, use o método estático ‘from_file’ da OlmStorage classe e passe o nome completo do arquivo ou stream como argumento para ele:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
Gerenciamento de pastas e e‑mails em arquivos OLM
Acessar estrutura de pastas recursivamente
A API Aspose.Email permite visualizar e exibir a hierarquia de pastas recuperada de um arquivo OLM usando a função print_all_folders. Esta função recebe a propriedade folder_hierarchy da OlmStorage a classe, juntamente com um nível de identação como entrada, e percorre recursivamente a hierarquia para imprimir o nome de cada pasta com a identação apropriada.
Abaixo está o exemplo de código demonstrando como usar a função print_all_folders para exibir a hierarquia de pastas de um arquivo OLM:
import aspose.email as ae
def print_all_folders(folder_hierarchy, indent):
for folder in folder_hierarchy:
print(f"{indent}{folder.name}")
print_all_folders(folder.sub_folders, indent + "-")
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
print_all_folders(olm.folder_hierarchy, "")
O exemplo de código acima tem como objetivo exibir a hierarquia de pastas do arquivo OLM por meio de uma função recursiva de forma mais estruturada e legível.
Acessar estrutura de pastas diretamente
Aspose.Email também possibilita acessar diretamente a estrutura de pastas do arquivo OLM usando o método get_folders() da OlmStorage classe.
Abaixo está um exemplo de código para acessar a estrutura de pastas diretamente:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folders = olm.get_folders()
Recuperar pastas por nome
É possível recuperar qualquer pasta pelo seu nome usando o método get_folder(name, ignore_case) da OlmStorage a classe. Este método requer os parâmetros de nome da pasta e sensibilidade a maiúsculas/minúsculas.
Eis um código de exemplo ilustrando como recuperar uma pasta pelo seu nome:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
Listar e‑mails de arquivos Outlook OLM
A biblioteca Aspose.Email pode ser usada para ler e extrair mensagens de e‑mail de arquivos Outlook for Mac (OLM). Você pode obter a lista de e‑mails usando os seguintes métodos da OlmFolder a classe que representa uma pasta:
- enumerate_messages() - Percorre cada mensagem de e‑mail na pasta. Este método retorna mensagens como instâncias da OlmMessageInfo a classe que fornece informações básicas sobre cada mensagem de e‑mail, como assunto, remetente, data, etc.
- enumerate_mapi_messages() - Também percorre cada mensagem de e‑mail em uma pasta, mas neste caso, retorna mensagens como instâncias da MapiMessage a classe que representa uma mensagem de e‑mail de forma mais detalhada e específica ao MAPI. Ela fornece acesso a uma ampla gama de propriedades e detalhes da mensagem de e‑mail, permitindo um processamento mais avançado e especializado.
Os exemplos de código abaixo demonstram como extrair assuntos básicos de e‑mail e salvar mensagens de e‑mail detalhadas de um arquivo Outlook OLM usando enumerate_messages() para extração de assunto e enumerate_mapi_messages() para salvar mensagens como arquivos .msg.
Extrair informações básicas de e‑mail usando o método ’enumerate_messages()’
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
for message_info in folder.enumerate_messages():
print(message_info.subject)
Salvar mensagens de e‑mail detalhadas usando o método ’enumerate_mapi_messages()’
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
for msg in folder.enumerate_mapi_messages():
msg.save(f"{msg.subject}.msg")
Recuperar número total de mensagens na pasta OLM
O OlmFolder a classe oferece ainda mais opções com os seguintes métodos:
- has_messages - Obtém um valor que indica se a pasta atual tem mensagens.
- message_count - Obtém a contagem de mensagens.
O exemplo de código abaixo demonstra como usar esses métodos:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
if folder.has_messages:
print(f"Message count: {folder.message_count}")
Obter ou definir datas de modificação para mensagens Outlook OLM
Aspose.Email permite recuperar informações sobre a hora da última modificação de uma mensagem de e‑mail. A propriedade modified_date da OlmMessageInfo a classe representa a data e hora em que a mensagem foi modificada pela última vez.
Eis um exemplo que demonstra o uso da propriedade:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
for message_info in folder.enumerate_messages():
modifiedDate = message_info.modified_date
Extraindo conteúdo OLM
Extrair e‑mails de arquivos Outlook OLM
Você pode recuperar os dados reais da mensagem MAPI de um armazenamento de e‑mail usando o método extract_mapi_message(message_info) da OlmStorage a classe. Este método extrai a mensagem MAPI do armazenamento com base no message_info fornecido.
O exemplo de código abaixo demonstra como usar este método:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
for message_info in folder.enumerate_messages():
msg = olm.extract_mapi_message(message_info)
Extrair mensagens do Outlook de arquivos OLM por identificador
Para acessar os dados da mensagem MAPI, você pode usar a propriedade entry_id para obter o identificador único (Entry ID) de uma mensagem usando o OlmMessageInfo a classe. Em seguida, você pode utilizar o método extract_mapi_message(id) da OlmStorage classe, passando o entry ID como parâmetro para recuperar a mensagem MAPI associada a esse entry ID específico. O trecho de código a seguir demonstra o uso desses recursos:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
for message_info in folder.enumerate_messages():
msg = olm.extract_mapi_message(message_info.entry_id)
Gerenciamento da estrutura de pastas OLM
Obter caminhos de pastas em arquivos Outlook OLM
Aspose.Email permite obter o caminho hierárquico ou localização da pasta dentro do arquivo Outlook OLM. A API fornece a propriedade path da OlmFolder classe que retorna o caminho da pasta. O trecho de código a seguir demonstra o uso desta propriedade:
import aspose.email as ae
def print_path(storage, folders):
for folder in folders:
# print the current folder path
print(folder.path)
if folder.sub_folders:
print_path(storage, folder.sub_folders)
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
print_path(olm, olm.folder_hierarchy)
Contar itens em pastas Outlook OLM
Aspose.Email fornece a capacidade de contar o número total de mensagens de e‑mail contidas na pasta específica de um arquivo Outlook OLM. A propriedade message_count da OlmFolder classe retorna a contagem total de itens (mensagens de email) armazenados dentro de uma pasta específica no arquivo OLM. O trecho de código a seguir demonstra o uso desta propriedade:
import aspose.email as ae
def print_message_count(folders):
for folder in folders:
print(f"Message Count [{folder.name}]: {folder.message_count}")
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
print_message_count(olm.folder_hierarchy)
Obter a contagem total de itens em arquivos Outlook OLM
O método get_total_items_count() da OlmStorage a classe retorna o número total de itens de mensagem contidos no armazenamento OLM, conforme mostrado no exemplo de código abaixo:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
count = olm.get_total_items_count()
Gerenciamento de categorias do Outlook
Recuperar cores de categorias do Outlook
Com Aspose.Email, você pode facilmente recuperar e utilizar cores de categorias associadas a categorias de itens do Outlook armazenadas em arquivos OLM. O OlmItemCategory classe permite que você acesse nomes de categorias e suas respectivas cores representadas em formato hexadecimal. O OlmStorage a classe apresenta o método GetCategories() para recuperar uma lista de categorias do armazenamento OLM. Implementando o exemplo de código abaixo, você pode recuperar facilmente todas as categorias usadas de um arquivo de armazenamento OML e acessar o nome da categoria junto com sua cor.
with OlmStorage.FromFile("storage.olm") as olm:
categories = olm.GetCategories()
for category in categories:
print(f"Category name: {category.Name}")
# Color is represented as a hexadecimal value: #rrggbb
print(f"Category color: {category.Color}")
Além disso, você pode recuperar a cor da categoria associada a mensagens específicas iterando pelas mensagens em uma pasta e acessando a cor da categoria correspondente com base no nome da categoria.
for msg in olm.EnumerateMessages(folder):
if msg.Categories is not None:
for msgCategory in msg.Categories:
print(f"Category name: {msgCategory}")
categoryColor = next((c.Color for c in categories if c.Name.lower() == msgCategory.lower()), None)
if categoryColor is not None:
print(f"Category color: {categoryColor}")