PST (Personal Storage Table) é um formato de arquivo de armazenamento usado por diferentes programas da Microsoft. Os arquivos PST são capazes de manter dados de mensagens, contatos, calendários, eventos, etc. É usado por softwares populares da Microsoft, como MS Outlook, Exchange e Windows Messaging. Em certos casos, pode ser necessário analisar um arquivo PST e extrair dados dele programaticamente. Para conseguir isso, este artigo mostra como analisar arquivos PST de dentro dos aplicativos Python.
- Biblioteca Python para analisar arquivos PST
- Analisar um arquivo PST em Python
- Extrair mensagens de um arquivo PST
- Extrair contatos de um arquivo PST
Biblioteca Python para analisar arquivos PST
Para analisar arquivos PST, usaremos Aspose.Email for Python. É uma poderosa biblioteca Python que permite implementar clientes de e-mail ricos em recursos sem problemas. Além disso, permite trabalhar com formatos populares de e-mail e armazenamento. Você pode instalar a biblioteca de PyPI usando o seguinte comando.
> pip install Aspose.Email-for-Python-via-NET
Analisar um arquivo PST em Python
A seguir estão as etapas para analisar um arquivo PST e extrair suas informações em Python.
- Carregue o arquivo PST usando o método PersonalStorage.fromfile().
- Obtenha a coleção de pastas no PST usando o método PersonalStorage.rootfolder.getsubfolders().
- Recupere as informações das pastas, como nome, número de itens, etc.
O exemplo de código a seguir mostra como analisar um arquivo PST e buscar as informações das pastas.
from aspose.email import PersonalStorage
# Carregar arquivo PST
personalStorage = PersonalStorage.from_file("Outlook.pst")
# Obter coleção de pastas
folderInfoCollection = personalStorage.root_folder.get_sub_folders()
# Extrair informações das pastas
for folderInfo in folderInfoCollection:
print("Folder: " + folderInfo.display_name)
print("Total Items: " + str(folderInfo.content_count))
print("Total Unread Items: " + str(folderInfo.content_unread_count))
Extrair mensagens de um arquivo PST em Python
As mensagens são as principais entidades armazenadas em arquivos PST por programas da Microsoft, como o MS Outlook. Então vamos ver como extrair mensagens de um arquivo PST em Python.
- Carregue o arquivo PST usando o método PersonalStorage.fromfile().
- Obtenha a referência da pasta desejada em um objeto usando o método PersonalStorage.rootfolder.getsubfolder().
- Obtenha a coleção de mensagens usando o método getcontents().
- Percorra as mensagens na coleção e leia os campos de cada mensagem.
O exemplo de código a seguir mostra como extrair mensagens de um arquivo PST em Python.
from aspose.email import PersonalStorage
# Carregar arquivo PST
sourcePst = PersonalStorage.from_file("Outlook.pst")
# Selecione a pasta desejada
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")
# Obter conteúdo na pasta
messageInfoCollection = sourceFolder.get_contents()
# Percorrer as mensagens na pasta
for messageInfo in messageInfoCollection:
print ("Subject: " + messageInfo.subject)
print("To: " + messageInfo.display_to)
Extrair contatos de um arquivo PST em Python
Em certos casos, pode ser necessário extrair as informações dos contatos armazenadas em um arquivo PST. As etapas a seguir mostram como acessar os contatos em um arquivo PST em Python.
- Carregue o arquivo PST usando o método PersonalStorage.fromfile().
- Obtenha a referência da pasta de contatos usando o método getpredefinedfolder(StandardIpmFolder.CONTACTS).
- Obtenha uma coleção de contatos usando o método getcontents().
- Percorra a coleção e leia cada contato ou salve-o.
O exemplo de código a seguir mostra como extrair contatos de um arquivo PST em Python.
from aspose.email import PersonalStorage, StandardIpmFolder, ContactSaveFormat
# Carregar arquivo PST
pst = PersonalStorage.from_file("SampleContacts_out.pst")
# Selecione a pasta de contatos
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)
# Obter contatos
contactCollection = folderInfo.get_contents()
# Percorrer a coleção de contatos
for messageInfo in contactCollection:
# Obtenha as informações de contato
mapi = pst.extract_message(messageInfo)
contact = mapi.to_mapi_message_item()
# Exibir alguns conteúdos na tela
print("Name: " + contact.name_info.display_name)
# Salvar em disco no formato MSG
if contact.name_info.display_name is not None:
# Salvar contato
contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)
Obtenha uma licença de API gratuita
Você pode experimentar o Aspose.Email for Python gratuitamente obtendo uma licença temporária.
Conclusão
Neste artigo, você aprendeu como analisar arquivos PST em Python. Além disso, você viu como extrair contatos e mensagens de um arquivo PST programaticamente em Python. Além disso, você pode explorar mais sobre o Aspose.Email usando documentação. Além disso, você pode compartilhar suas perguntas ou dúvidas em nosso fórum.