Criar Arquivos PST em C#

Os arquivos PST (Tabela de Armazenamento Pessoal) servem como um componente vital para gerenciar os dados do Outlook, facilitando o armazenamento de e-mails, contatos, calendários e outros itens. No âmbito do desenvolvimento em C# .NET, o processo de criação e gerenciamento de arquivos de armazenamento é crucial para várias aplicações.

Neste artigo, exploraremos como criar arquivos PST usando C# .NET. Abordaremos a criação de armazenamento PST vazio, adição de pastas e subpastas, incorporação de pastas padrão e regulares e, finalmente, adição de e-mails e itens do Outlook ao arquivo PST.

API C# para Criar e Preencher Arquivos PST

Para trabalhar com arquivos de armazenamento no formato PST em C#, usaremos Aspose.Email para .NET. Esta biblioteca abrangente é projetada para desenvolvedores .NET, oferecendo ferramentas poderosas para processar dados relacionados a e-mails. Com suas APIs intuitivas, os desenvolvedores podem criar, ler e manipular estruturas de armazenamento PST sem esforço, incluindo a adição de pastas, subpastas e pastas padrão do Outlook. A biblioteca simplifica o processamento de mensagens de e-mail, fornecendo funcionalidades para análise, criação, envio, recebimento e conversão de e-mails em vários formatos, como MSG, EML e MHTML. Aspose.Email capacita os desenvolvedores a gerenciar eficientemente tarefas relacionadas a e-mails dentro de suas aplicações .NET, melhorando a funcionalidade e o desempenho enquanto oferece capacidades superiores de processamento de e-mails aos usuários finais.

Para aproveitar o poder da API, você pode baixar sua DLL ou instalá-la pelo NuGet usando o seguinte comando:

PM> Install-Package Aspose.Email

Criando um Armazenamento PST Vazio Mínimo

Para começar, vamos criar um armazenamento pessoal vazio. Isso envolve a inicialização de um arquivo PST sem itens. O exemplo de código abaixo mostrará como configurar a estrutura básica para um novo arquivo chamado “sample.pst” com versão de formato de arquivo Unicode. Para criar um novo arquivo PST, use o método PersonalStorage.Create.

// Initialize the PersonalStorage instance
using (var pst = PersonalStorage.Create("sample.pst", FileFormatVersion.Unicode))
{
// Add your code for further operations
}
view raw CreatePst.cs hosted with ❤ by GitHub

Nota: o mínimo de pst é 256 Kb e contém uma pasta raiz e uma pasta de Itens Excluídos.

Adicionando Pastas e Subpastas

Uma vez que temos o armazenamento PST vazio, o próximo passo é adicionar pastas e subpastas para organizar nossos dados de forma eficiente. Considere as subseções a seguir e experimente os exemplos de código a seguir para realizar a tarefa.

Adicionando Pastas Padrão

Adicionar pastas padrão como Caixa de Entrada, Caixa de Saída, Itens Enviados, Rascunhos, etc., é simples com o Aspose.Email. O exemplo de código a seguir demonstra como criar uma nova pasta chamada “Caixa de Entrada” dentro de um PST chamado “sample.pst”. O código usa a classe PersonalStorage para abrir o arquivo PST e, em seguida, chama o método CreatePredefinedFolder() para criar uma pasta padrão para itens recebidos. A pasta é criada usando o tipo de pasta predefinido StandardIpmFolder.inbox, que normalmente representa a Caixa de Entrada em clientes de e-mail.

  1. Inicialize um novo objeto PersonalStorage.
  2. Use o método CreatePredefinedFolder da instância PersonalStorage (pst) para criar uma pasta padrão chamada “Caixa de Entrada”, especificando o tipo de pasta StandardIpmFolder.Inbox para indicar que se trata de uma pasta de Caixa de Entrada.
using (var pst = PersonalStorage.Create("sample.pst", FileFormatVersion.Unicode))
{
// Create a standard folder (Inbox)
var inboxFolder = pst.CreatePredefinedFolder("Inbox", StandardIpmFolder.Inbox);
}

A lista a seguir compreende as pastas padrão que podem ser adicionadas a um novo arquivo PST:

  • Caixa de Entrada
  • Itens Enviados
  • Calendário
  • Contatos
  • Diário
  • Notas
  • Tarefas
  • Problemas de Sincronização
  • E-mails de Lixo
  • Feeds RSS

Adicionando Pastas Regulares

Além das pastas padrão, os usuários frequentemente criam pastas personalizadas com nomes específicos para melhor organização de seus e-mails. O trecho de código a seguir mostra como adicionar uma pasta personalizada à raiz do arquivo PST.

  1. Inicialize um novo objeto PersonalStorage.
  2. Use o método AddSubFolder da propriedade RootFolder da instância PersonalStorage para criar uma pasta personalizada.

Após criar a “Pasta Personalizada”, você pode usar o método AddSubFolder novamente para criar subpastas dentro dela. Forneça o nome desejado para a subpasta como um parâmetro para o método AddSubFolder.

using (var pst = PersonalStorage.Create("sample.pst", FileFormatVersion.Unicode))
{
// Create a custom folder
var someFolder = pst.RootFolder.AddSubFolder("SomeFolder");
// Create a subfolder to the "Custom Folder"
var subFolder = customFolder.AddSubFolder("SubFolder");
}

Adicionando E-mails e Itens do Outlook

Com a estrutura em vigor, agora podemos preencher nosso arquivo PST com e-mails e outros itens do Outlook. Isso envolve a criação de e-mails, compromissos, contatos, tarefas e mais, e adicioná-los às pastas apropriadas dentro do arquivo. Vamos considerar alguns exemplos.

Adicionando Novos E-mails

O exemplo de código a seguir mostrará como adicionar uma nova mensagem de e-mail à pasta “Caixa de Entrada” dentro do arquivo PST. O código envolve os seguintes passos:

  1. Inicialize um novo objeto PersonalStorage.
  2. Recupere a pasta Caixa de Entrada usando o método GetSubFolder na propriedade RootFolder da instância PersonalStorage.
  3. Instancie um novo objeto MapiMessage.
  4. Use o método AddMessage no objeto inboxFolder para adicionar a mensagem recém-criada (message) à pasta Caixa de Entrada.
using (var pst = PersonalStorage.Create("sample.pst", FileFormatVersion.Unicode))
{
// Access the folder to add items
var inboxFolder = pst.RootFolder.GetSubFolder("Inbox");
// Create a new message
var message = new MapiMessage("from@example.com", "to@example.com", "Subject", "Body");
// Add the message to the Inbox folder
inboxFolder.AddMessage(message);
}
view raw AddNewEmails.cs hosted with ❤ by GitHub

Adicionando Itens do Outlook

O exemplo de código a seguir permite que você adicione um contato a um novo arquivo PST como exemplo. Ele descreve o processo de criação de um novo arquivo de armazenamento pessoal, adicionando uma pasta padrão de Contatos a ele, carregando um contato de um arquivo VCF e adicionando o contato à pasta de Contatos. O código envolve os seguintes passos:

  1. Inicialize um novo objeto PersonalStorage.
  2. Use o método CreatePredefinedFolder para criar uma pasta padrão especificando o tipo de pasta StandardIpmFolder.Contacts para indicar que se trata de uma pasta de Contatos.
  3. Use o método MapiContact.FromVCard para carregar um contato de um arquivo VCF. Este método cria um objeto MapiContact representando as informações de contato.
  4. Use o método AddMapiMessageItem para adicionar o contato carregado à pasta de Contatos.
using (var pst = PersonalStorage.Create("sample.pst", FileFormatVersion.Unicode))
{
// Create a standard folder (Contacts)
var contactsFolder = pst.CreatePredefinedFolder("My Contacts", StandardIpmFolder.Contacts);
// Load a contact from vcf file
var contact = MapiContact.FromVCard("Contact.vcf");
// Add the contact to the folder
contactsFolder.AddMapiMessageItem(contact);
}

Conclusão

Neste tutorial, exploramos como criar arquivos PST usando C# .NET com a biblioteca Aspose.Email. Desde a criação de armazenamento PST vazio até a adição de pastas, subpastas e vários itens do Outlook, a biblioteca oferece um conjunto abrangente de recursos para manipulação de arquivos PST. Integrar essas funcionalidades em suas aplicações C# .NET permite que você gerencie eficientemente os dados do Outlook, aprimorando a robustez e a versatilidade de suas soluções de software.

Além disso, a biblioteca oferece uma ampla gama de recursos para criar, extrair, analisar, converter e manipular e-mails, apoiada por documentação abrangente e exemplos de código para agilizar o processo de integração, facilitando para os desenvolvedores implementar soluções relacionadas a e-mails em suas aplicações .NET.

Juntamente com a API avançada, você pode ter acesso contínuo a recursos gratuitos:

  • fórum de suporte - uma enorme comunidade para obter respostas a todas as suas perguntas
  • blog - informações valiosas sobre recursos atualizados
  • documentação - tutoriais, exemplos de código e melhores práticas com acesso a referências da API
  • aplicativos gratuitos apps para visualizar ou converter, mesclar ou analisar e-mails, analisar cabeçalhos, adicionar marcas d’água e mais

Aspose.Email garante que os desenvolvedores tenham os recursos necessários para enfrentar quaisquer desafios e maximizar o potencial da API em suas aplicações.

Veja Também