Programování s Thunderbird

Čtení zpráv

Mozilla Thunderbird je open‑source, multiplatformní e‑mailový klient vyvíjený Mozilla Foundation. Ukládá e‑maily ve vlastní souborové struktuře, spravuje indexy zpráv a podsložky pomocí proprietárních formátů souborů. Aspose.Email může pracovat se strukturou úložiště pošty Thunderbirdu. Třída MboxrdStorageReader umožňuje vývojářům číst zprávy z úložného souboru pošty Mozilla Thunderbird. Tento článek ukazuje, jak číst zprávy z úložiště e‑mailu Thunderbird:

  1. Otevřete úložný soubor Thunderbirdu
  2. Vytvořte instanci třídy MboxrdStorageReader a předejte výše uvedený stream do konstruktoru.
  3. Zavolejte read_next_message() pro získání první zprávy.
  4. Použijte stejnou funkci read_next_message() ve smyčce while pro čtení všech zpráv.
  5. Uzavřete všechny proudy.

Níže uvedený úryvek kódu ukazuje, jak načíst všechny zprávy z poštovního úložiště Thunderbird.

Získání vlastností zprávy

Pro čtení a získání informací ze souboru Mbox poskytuje Aspose.Email MboxStorageReader třída pro vytvoření objektu čtečky pro soubor Mbox a MboxLoadOptions třída pro načtení souboru. Následující vlastnosti třídy MboxMessageInfo třída může být použita k přístupu a zobrazení konkrétních detailů zprávy:

  • ‘date’ – získá datum zprávy.
  • ‘from_address’ – získá adresu odesílatele.
  • ‘subject’ - Získá předmět zprávy.
  • ’to’ - Získá kolekci adres obsahující příjemce zprávy.
  • ‘cc’ - Získá kolekci adres obsahující CC příjemce.
  • ‘bcc’ - Získá kolekci adres obsahující BCC příjemce zprávy.

Níže uvedená ukázka kódu demonstruje použití těchto vlastností pro čtení a extrakci informací o zprávách z Mbox souboru:

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}")

Extrahovat zprávy z MBOX podle identifikátorů

Pro čtení zpráv z MBOX souboru poskytuje Aspose.Email metodu ‘create_reader()’ třídy MboxStorageReader třída pro vytvoření objektu čtečky pro soubor. Přijímá název souboru a MboxLoadOptions jako argumenty, což umožňuje uživateli načíst MBOX soubor s konkrétními volbami, pokud je potřeba.

Pro extrakci zpráv jsou použity následující metody a vlastnosti:

  • metoda ’enumerate_message_info()’ třídy MboxStorageReader třída - Prochází každou zprávu v MBOX souboru.
  • metoda ’extract_message()’ třídy MboxStorageReader třída - Extrahuje každou zprávu podle jejího Entry ID.
  • vlastnost ’entry_id’ třídy MboxMessageInfo třída - Získá identifikátor vstupu.

Nakonec je zpráva převedena do formátu EML pomocí EmlLoadOptions.

Níže uvedená ukázka kódu demonstruje použití těchto funkcí pro čtení a extrakci zpráv z MBOX souboru:

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

Konfigurace možností načítání při čtení zpráv z MBOX

S Aspose.Email EmlLoadOptions třída, můžete při načítání MailMessage z formátu Eml specifikovat další volby. Například můžete nastavit volbu pro zachování TNEF příloh během načítání souboru EML pomocí vlastnosti ‘preserve_tnef_attachments’ třídy EmlLoadOptions třída.

Můžete přečíst další e‑mailovou zprávu ze souboru mbox pomocí specifikovaných možností načítání s metodou ‘read_next_message’ třídy MboxStorageReader třída a konvertuje soubor do formátu PST pomocí metody ‘mbox_to_pst’ třídy MailStorageConverter třída .

Níže uvedená ukázka kódu demonstruje použití těchto metod a vlastností pro práci se soubory úložiště e‑mailů, včetně čtení zpráv z formátu mbox, zachování TNEF příloh a konverze zpráv z mbox do formátu 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")

Nastavení preferovaného kódování textu při načítání MBOX souborů pro čtení

Můžete specifikovat kódování textu, které se má použít při načítání souboru MBOX. Vlastnost ‘preferred_text_encoding’ je dostupná pro MboxLoadOptions třída nastaví dodatečnou volbu a zajišťuje, že zpráva s kódovaným obsahem bude správně přečtena a zpracována.

Následující úryvek kódu ukazuje, jak použít tuto funkci v projektu:

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

Konverze MBOX na PST při zachování nebo odstranění podpisu

Pro odstranění podpisu ze souboru během konverze nastavte vlastnost MboxToPstConversionOptions.remove_signature na true.

Následující ukázka kódu ukazuje, jak využít tuto vlastnost:

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)

Zápis zpráv

Třída MboxrdStorageWriter poskytuje možnost zapisovat nové zprávy do úložného souboru pošty Thunderbird. Pro zápis zpráv:

  1. Otevřete úložný soubor Thunderbirdu v FileStream.
  2. Vytvořte instanci třídy MboxrdStorageWriter a předejte výše uvedený stream do konstruktoru.
  3. Vytvořte novou zprávu pomocí třídy MailMessage.
  4. Zavolejte metodu write_message() a předejte výše uvedenou instanci MailMessage pro přidání zprávy do úložiště Thunderbirdu.
  5. Uzavřete všechny proudy.

Níže uvedený úryvek kódu ukazuje, jak zapisovat zprávy do poštovního úložiště Thunderbird.

Získání celkového počtu zpráv ze souboru MBox

Třída MboxrdStorageReader umožňuje přečíst počet položek dostupných v souboru MBox. To může být použito k vývoji aplikací zobrazujících průběh zpracování takového souboru.

Získat aktuální velikost zprávy