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:
- Otevřete úložný soubor Thunderbirdu
- Vytvořte instanci třídy MboxrdStorageReader a předejte výše uvedený stream do konstruktoru.
- Zavolejte read_next_message() pro získání první zprávy.
- Použijte stejnou funkci read_next_message() ve smyčce while pro čtení všech zpráv.
- 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:
- Otevřete úložný soubor Thunderbirdu v FileStream.
- Vytvořte instanci třídy MboxrdStorageWriter a předejte výše uvedený stream do konstruktoru.
- Vytvořte novou zprávu pomocí třídy MailMessage.
- Zavolejte metodu write_message() a předejte výše uvedenou instanci MailMessage pro přidání zprávy do úložiště Thunderbirdu.
- 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.