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:
- Otwórz plik magazynu Thunderbirda
- Utwórz instancję klasy MboxrdStorageReader i przekaż powyższy strumień do konstruktora.
- Wywołaj read_next_message(), aby uzyskać pierwszą wiadomość.
- Użyj tej samej funkcji read_next_message() w pętli while, aby odczytać wszystkie wiadomości.
- 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:
- Otwórz plik magazynu Thunderbirda w FileStream.
- Utwórz instancję klasy MboxrdStorageWriter i przekaż powyższy strumień do konstruktora.
- Przygotuj nową wiadomość przy użyciu klasy MailMessage.
- Wywołaj metodę write_message() i przekaż powyższą instancję MailMessage, aby dodać wiadomość do magazynu Thunderbirda.
- 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.