Programowanie z Thunderbird

Odczytywanie wiadomości

Mozilla Thunderbird jest otwarto‑źródłowym, wieloplatformowym klientem e‑mail, opracowanym przez Mozilla Foundation. Przechowuje e‑maile w własnej strukturze plików, zarządzając indeksami wiadomości i podfolderami przy użyciu własnych formatów plików. Aspose.Email może pracować ze strukturą przechowywania poczty Thunderbirda. Klasa MboxrdStorageReader umożliwia programistom odczyt wiadomości z pliku przechowywania poczty Mozilla Thunderbird. Ten artykuł pokazuje, jak odczytać wiadomości z magazynu poczty Thunderbird:

  1. Otwórz plik magazynu Thunderbirda
  2. Utwórz instancję klasy MboxrdStorageReader i przekaż powyższy strumień do konstruktora.
  3. Wywołaj read_next_message(), aby uzyskać pierwszą wiadomość.
  4. Użyj tej samej funkcji read_next_message() w pętli while, aby odczytać wszystkie wiadomości.
  5. Zamknij wszystkie strumienie.

Poniższy fragment kodu pokazuje, jak odczytać wszystkie wiadomości z magazynu poczty Thunderbird.

Pobieranie właściwości wiadomości

Aby odczytać i pobrać informacje z pliku Mbox, Aspose.Email udostępnia MboxStorageReader klasa do tworzenia obiektu czytnika dla pliku Mbox i MboxLoadOptions klasa do ładowania pliku. Następujące właściwości MboxMessageInfo klasa może być użyta do uzyskania dostępu i wyświetlenia określonych szczegółów wiadomości:

  • ‘date’ - Pobiera datę wiadomości.
  • ‘from_address’ - Pobiera adres nadawcy.
  • ‘subject’ - Pobiera temat wiadomości.
  • ’to’ - Pobiera kolekcję adresów zawierającą odbiorców wiadomości.
  • ‘cc’ - Pobiera kolekcję adresów zawierającą odbiorców CC.
  • ‘bcc’ - Pobiera kolekcję adresów zawierającą odbiorców BCC wiadomości.

Poniższy przykład kodu demonstruje użycie tych właściwości do odczytu i wyodrębniania informacji o wiadomościach z pliku 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}")

Wyodrębnianie wiadomości z MBOX po identyfikatorach

Aby odczytać wiadomości z pliku MBOX, Aspose.Email udostępnia metodę ‘create_reader()’ klasy MboxStorageReader klasa do tworzenia obiektu czytnika dla pliku. Przyjmuje nazwę pliku oraz MboxLoadOptions jako argumenty, umożliwiając użytkownikowi ładowanie pliku MBOX z określonymi opcjami w razie potrzeby.

Aby wyodrębnić wiadomości, używane są następujące metody i właściwości:

  • metoda ’enumerate_message_info()’ klasy MboxStorageReader klasa - Iteruje przez każdą wiadomość w pliku MBOX.
  • metoda ’extract_message()’ klasy MboxStorageReader klasa - Wyodrębnia każdą wiadomość na podstawie jej Entry ID.
  • właściwość ’entry_id’ klasy MboxMessageInfo klasa - Pobiera identyfikator wpisu.

Na koniec wiadomość zostaje przekonwertowana do formatu EML przy użyciu EmlLoadOptions.

Poniższy przykład kodu demonstruje użycie tych funkcji do odczytu i wyodrębniania wiadomości z pliku 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())

Konfigurowanie opcji ładowania przy odczycie wiadomości z MBOX

Z Aspose.Email EmlLoadOptions klasa, możesz określić dodatkowe opcje przy ładowaniu MailMessage z formatu Eml. Na przykład możesz ustawić opcję zachowywania załączników TNEF podczas ładowania pliku EML poprzez właściwość ‘preserve_tnef_attachments’ klasy EmlLoadOptions klasa.

Możesz odczytać kolejną wiadomość e‑mail z pliku mbox, używając określonych opcji ładowania metodą ‘read_next_message’ klasy MboxStorageReader klasa i konwertuje plik do formatu PST metodą ‘mbox_to_pst’ klasy MailStorageConverter klasa .

Poniższy przykład kodu demonstruje użycie tych metod i właściwości do pracy z plikami przechowywania e‑mail, w tym odczytu wiadomości z formatu mbox, zachowywania załączników TNEF oraz konwersji wiadomości z formatu mbox na 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")

Ustawianie preferowanego kodowania tekstu przy ładowaniu plików Mbox do odczytu

Możesz określić kodowanie tekstu używane przy ładowaniu pliku MBOX. Właściwość ‘preferred_text_encoding’ dostępna jest dla MboxLoadOptions klasa ustawia dodatkową opcję i zapewnia, że wiadomość z zakodowaną treścią będzie prawidłowo odczytana i przetworzona.

Poniższy fragment kodu pokazuje, jak używać tej funkcji w projekcie:

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()

Konwersja MBOX do PST z zachowaniem lub usunięciem podpisu

Aby usunąć podpis z pliku w trakcie konwersji, ustaw właściwość MboxToPstConversionOptions.remove_signature na true.

Poniższy przykład kodu pokazuje, jak wykorzystać tę właściwość:

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)

Zapisywanie wiadomości

Klasa MboxrdStorageWriter umożliwia zapisywanie nowych wiadomości do pliku przechowywania poczty Thunderbirda. Aby zapisywać wiadomości:

  1. Otwórz plik magazynu Thunderbirda w FileStream.
  2. Utwórz instancję klasy MboxrdStorageWriter i przekaż powyższy strumień do konstruktora.
  3. Przygotuj nową wiadomość przy użyciu klasy MailMessage.
  4. Wywołaj metodę write_message() i przekaż powyższą instancję MailMessage, aby dodać wiadomość do magazynu Thunderbirda.
  5. Zamknij wszystkie strumienie.

Poniższy fragment kodu pokazuje, jak zapisywać wiadomości w magazynie poczty Thunderbird.

Uzyskanie całkowitej liczby wiadomości z pliku MBox

Klasa MboxrdStorageReader umożliwia odczyt liczby elementów dostępnych w pliku MBox. Może to być wykorzystane do tworzenia aplikacji wyświetlających postęp działań podczas przetwarzania takiego pliku.

Pobierz bieżący rozmiar wiadomości