Gravar e ler mensagens no armazenamento Thunderbird em C# .NET

Thunderbird é um aplicativo cliente de e-mail de código aberto que permite configurar vários servidores de e-mail e acessar suas mensagens de e-mail. Isso possibilita que você gerencie e-mails de várias contas em um único local. Em certos casos, pode ser necessário criar e acessar mensagens de e-mail no armazenamento do Thunderbird programaticamente. Assim, neste artigo, você aprenderá a escrever e ler mensagens no armazenamento Thunderbird em C# .NET.

API C# .NET para gravar e ler mensagens no armazenamento Thunderbird

Para escrever e ler mensagens de e-mail no armazenamento do Thunderbird, usaremos Aspose.Email for .NET. É uma API de processamento de e-mail que permite manipular e-mails e trabalhar com clientes de e-mail populares, como Thunderbird, Outlook, etc. Você pode baixar a DLL da API ou instalá-la de NuGet usando o seguinte comando .

PM> Install-Package Aspose.Email

Escreva uma mensagem no armazenamento Thunderbird em C# .NET

Você pode criar novas mensagens e armazená-las no armazenamento do Thunderbird em poucos passos usando o Aspose.Email para .NET. A seguir estão as etapas para executar esta operação em C#.

O exemplo de código a seguir mostra como gravar uma mensagem no armazenamento Thunderbird em C# .NET.

// Abra o arquivo de armazenamento com FileStream
FileStream stream = new FileStream("ExampleMbox.mbox", FileMode.Open, FileAccess.Write);

// Inicialize o MboxStorageWriter e passe o fluxo para ele
MboxrdStorageWriter writer = new MboxrdStorageWriter(stream, false);

// Preparar uma nova mensagem usando a classe MailMessage
MailMessage message = new MailMessage("from@domain.com", "to@domain.com", Guid.NewGuid().ToString(), "added from Aspose.Email");
message.IsDraft = false;

// Adicionar esta mensagem ao armazenamento
writer.WriteMessage(message);

// Fechar todos os fluxos relacionados
writer.Dispose();
stream.Close();

Ler mensagens do armazenamento Thunderbird em C#

Para ler as mensagens do armazenamento do Thunderbird, precisamos carregar o arquivo de armazenamento usando a classe MboxrdStorageReader. A seguir estão as etapas para ler mensagens do Thunderbird em C#.

  • Primeiro, carregue o arquivo MBOX em um objeto FileStream.
  • Em seguida, crie uma instância de MboxrdStorageReader para ler o arquivo de armazenamento.
  • Depois disso, leia a primeira mensagem usando o método MboxrdStorageReader.ReadNextMessage().
  • Em seguida, inicie um loop para percorrer todas as mensagens.
  • Leia cada mensagem e salve-a em disco, se necessário.
  • Por fim, descarte o leitor no final.

O exemplo de código a seguir mostra como ler mensagens do armazenamento do Thunderbird em C#.

// Abra o arquivo de armazenamento com FileStream
FileStream stream = new FileStream("ExampleMbox.mbox", FileMode.Open, FileAccess.Read);

// Crie uma instância da classe MboxrdStorageReader e passe o fluxo
MboxrdStorageReader reader = new MboxrdStorageReader(stream, false);

// Comece a ler as mensagens
MailMessage message = reader.ReadNextMessage();

// Ler todas as mensagens em um loop
while (message != null)
{
    // Manipular mensagem - mostrar conteúdo
    Console.WriteLine("Subject: " + message.Subject);
    
    // Salve esta mensagem no formato EML ou MSG
    message.Save(message.Subject + ".eml", SaveOptions.DefaultEml);
    message.Save(message.Subject + ".msg", SaveOptions.DefaultMsgUnicode);

    // Receba a próxima mensagem
    message = reader.ReadNextMessage();
}

// Feche os fluxos
reader.Dispose();
stream.Close();

Obtenha uma licença de API gratuita

Você pode usar o Aspose.Email para .NET sem limitações de avaliação usando uma licença temporária gratuita.

Conclusão

Usando o Thunderbird, você pode acessar mensagens de e-mail de várias contas em um único local. Neste artigo, você aprendeu como escrever mensagens no armazenamento Thunderbird em C# .NET. Além disso, você viu como ler mensagens do armazenamento do Thunderbird programaticamente. Além disso, você pode visitar a documentação para explorar outros recursos do Aspose.Email para .NET. Caso você tenha alguma dúvida, você pode postar em nosso fórum.

Veja também