Programação com Thunderbird

Lendo Mensagens

O Mozilla Thunderbird é um cliente de email de código aberto e multiplataforma, desenvolvido pela Mozilla Foundation. Ele armazena emails em sua própria estrutura de arquivos, gerenciando índices de mensagens e subpastas através de formatos de arquivo proprietários. O Aspose.Email pode trabalhar com as estruturas de armazenamento de email do Thunderbird. A classe MboxrdStorageReader permite que desenvolvedores leiam mensagens do arquivo de armazenamento de email do Mozilla Thunderbird. Este artigo mostra como ler as mensagens do armazenamento de email do Thunderbird:

  1. Abra o arquivo de armazenamento do Thunderbird
  2. Crie uma instância da classe MboxrdStorageReader e passe o stream acima ao construtor.
  3. Chame read_next_message() para obter a primeira mensagem.
  4. Use o mesmo read_next_message() em um loop while para ler todas as mensagens.
  5. Feche todos os streams.

O trecho de código a seguir mostra como ler todas as mensagens de um armazenamento de email do Thunderbird.

Recuperando propriedades da mensagem

Para ler e extrair informações de um arquivo Mbox, Aspose.Email fornece o MboxStorageReader classe para criar um objeto leitor para o arquivo Mbox e o MboxLoadOptions classe para carregar o arquivo. As seguintes propriedades do MboxMessageInfo classe pode ser usada para acessar e exibir detalhes específicos da mensagem:

  • ‘date’ - Obtém a data da mensagem.
  • ‘from_address’ - Obtém o endereço de origem.
  • ‘subject’ - Obtém o assunto da mensagem.
  • ’to’ - Obtém a coleção de endereços que contém os destinatários da mensagem.
  • ‘cc’ - Obtém a coleção de endereços que contém os destinatários CC.
  • ‘bcc’ - Obtém a coleção de endereços que contém os destinatários BCC da mensagem.

O exemplo de código a seguir demonstra o uso dessas propriedades para ler e extrair informações de mensagens de um arquivo Mbox:

import aspose.email as ae

reader = ae.storage.mbox.MboxStorageReader.create_reader(file_name, ae.storage.mbox.MboxLoadOptions())

for mbox_message_info in reader.enumerate_message_info():
    print(f"Subject: {mbox_message_info.subject}")
    print(f"Date: {mbox_message_info.date}")
    print(f"From: {mbox_message_info.from_address}")
    print(f"To: {mbox_message_info.to}")
    print(f"CC: {mbox_message_info.cc}")
    print(f"Bcc: {mbox_message_info.bcc}")

Extrair Mensagens de MBOX por Identificadores

Para ler mensagens de um arquivo MBOX, o Aspose.Email fornece o método ‘create_reader()’ da MboxStorageReader classe para criar um objeto leitor para o arquivo. Ela recebe o nome do arquivo e MboxLoadOptions como argumentos, permitindo que o usuário carregue o arquivo MBOX com opções específicas, se necessário.

Para extrair mensagens, os seguintes métodos e propriedades são usados:

  • método ’enumerate_message_info()’ da MboxStorageReader classe - Itera por cada mensagem no arquivo MBOX.
  • método ’extract_message()’ da MboxStorageReader classe - Extrai cada mensagem pelo seu ID de Entrada.
  • propriedade ’entry_id’ da MboxMessageInfo classe - Obtém o identificador de entrada.

Finalmente, a mensagem é convertida para o formato EML usando EmlLoadOptions.

O exemplo de código abaixo demonstra o uso desses recursos para ler e extrair mensagens de um arquivo MBOX:

import aspose.email as ae

reader = ae.storage.mbox.MboxStorageReader.create_reader("my.mbox", ae.storage.mbox.MboxLoadOptions())

for mbox_message_info in reader.enumerate_message_info():
    eml = reader.extract_message(mbox_message_info.entry_id, ae.EmlLoadOptions())

Configurando as opções de carregamento ao ler mensagens de MBOX

Com Aspose.Email EmlLoadOptions classe, você pode especificar opções adicionais ao carregar MailMessage do formato Eml. Por exemplo, pode definir uma opção para preservar anexos TNEF ao carregar um arquivo EML com a propriedade ‘preserve_tnef_attachments’ da EmlLoadOptions classe.

Você pode ler a próxima mensagem de email do arquivo mbox usando as opções de carregamento especificadas com o método ‘read_next_message’ da MboxStorageReader classe e converta o arquivo para formato PST com o método ‘mbox_to_pst’ da MailStorageConverter classe .

O exemplo de código abaixo demonstra o uso desses métodos e propriedades para trabalhar com arquivos de armazenamento de email, incluindo leitura de mensagens de formato mbox, preservação de anexos TNEF e conversão de mensagens de mbox para formato pst:

import aspose.email as ae

reader = ae.storage.mbox.MboxrdStorageReader(fileName, ae.storage.mbox.MboxLoadOptions())
# Read messages preserving tnef attachments.
load_options = ae.EmlLoadOptions()
load_options.preserve_tnef_attachments = True
eml = reader.read_next_message(load_options)
ae.storage.MailStorageConverter.MboxMessageOptions(load_options)
# Convert messages from mbox to pst preserving tnef attachments.
pst = ae.storage.MailStorageConverter.mbox_to_pst("Input.mbox", "Output.pst")

Definindo a Codificação de Texto Preferida ao Carregar Arquivos Mbox para Leitura

Você pode especificar a codificação de texto a ser usada ao carregar um arquivo MBOX. A propriedade ‘preferred_text_encoding’ disponível para o MboxLoadOptions a classe define uma opção adicional e garante que uma mensagem com conteúdo codificado seja lida e processada corretamente.

O trecho de código a seguir mostra como usar este recurso em um projeto:

import aspose.email as ae

load_options = ae.storage.mbox.MboxLoadOptions()
load_options.preferred_text_encoding = 'utf-8'
reader = ae.storage.mbox.MboxrdStorageReader("sample.mbox", load_options)
message = reader.read_next_message()

Convertendo MBOX para PST Preservando ou Removendo uma Assinatura

Para remover a assinatura de um arquivo durante o processo de conversão, defina a propriedade MboxToPstConversionOptions.remove_signature como true.

O exemplo de código a seguir mostra como utilizar esta propriedade:

import aspose.email as ae

personalStorage = ae.storage.pst.PersonalStorage.create("target.pst", ae.storage.pst.FileFormatVersion.UNICODE)
conversion_options = ae.storage.MboxToPstConversionOptions()
conversion_options.remove_signature = True
ae.storage.MailStorageConverter.mbox_to_pst( ae.storage.mbox.MboxrdStorageReader("source.mbox", ae.storage.mbox.MboxLoadOptions()), personalStorage, "Inbox", conversion_options)

Escrevendo Mensagens

A classe MboxrdStorageWriter fornece a funcionalidade para escrever novas mensagens no arquivo de armazenamento de email do Thunderbird. Para escrever mensagens:

  1. Abra o arquivo de armazenamento do Thunderbird em FileStream.
  2. Crie uma instância da classe MboxrdStorageWriter e passe o stream acima ao construtor.
  3. Prepare uma nova mensagem usando a classe MailMessage.
  4. Chame o método write_message() e passe a instância de MailMessage acima para adicionar a mensagem ao armazenamento do Thunderbird.
  5. Feche todos os streams.

O trecho de código a seguir mostra como escrever mensagens no armazenamento de email do Thunderbird.

Obter Número Total de Mensagens de um Arquivo MBox

A classe MboxrdStorageReader fornece a capacidade de ler o número de itens disponíveis em um arquivo MBox. Isso pode ser usado para desenvolver aplicativos que mostram o progresso da atividade ao processar tal arquivo.

Obter Tamanho da Mensagem Atual