Programmeren met Thunderbird
Berichten lezen
Mozilla Thunderbird is een open‑source, cross‑platform e‑mailclient, ontwikkeld door de Mozilla Foundation. Het slaat e‑mails op in een eigen bestandstructuur, beheert bericht‑indexen en submappen via propriëtaire bestandsformaten. Aspose.Email kan werken met de opslagstructuren van Thunderbird. De MboxrdStorageReader‑klasse stelt ontwikkelaars in staat berichten te lezen uit het opslagbestand van Mozilla Thunderbird. Dit artikel toont hoe de berichten uit de Thunderbird‑e‑mailopslag gelezen kunnen worden:
- Open het opslagbestand van Thunderbird
- Maak een instantie van de MboxrdStorageReader‑klasse en geef de bovenstaande stream door aan de constructor.
- Roep read_next_message() aan om het eerste bericht te krijgen.
- Gebruik dezelfde read_next_message() in een while‑lus om alle berichten te lezen.
- Sluit alle streams.
Het volgende code‑fragment laat zien hoe je alle berichten uit een Thunderbird‑mailopslag kunt lezen.
Berichtproperties ophalen
Om informatie uit een Mbox‑bestand te lezen en op te halen, biedt Aspose.Email de MboxStorageReader klasse om een lezerobject voor het Mbox‑bestand te maken en de MboxLoadOptions klasse om het bestand te laden. De volgende eigenschappen van de MboxMessageInfo klasse kan worden gebruikt om specifieke berichtdetails te benaderen en weer te geven:
- ‘date’ - Haalt de datum van het bericht op.
- ‘from_address’ - Haalt het afzenderadres op.
- ‘subject’ - Haalt het onderwerp van het bericht op.
- ’to’ - Haalt de adrescollectie op die de ontvangers van het bericht bevat.
- ‘cc’ - Haalt de adrescollectie op die CC‑ontvangers bevat.
- ‘bcc’ - Haalt de adrescollectie op die BCC‑ontvangers van het bericht bevat.
Het volgende code‑voorbeeld toont het gebruik van deze eigenschappen om berichtinformatie uit een Mbox‑bestand te lezen en te extraheren:
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}")
Berichten uit MBOX extraheren op basis van identifiers
Om berichten uit een MBOX‑bestand te lezen, biedt Aspose.Email de ‘create_reader()’-methode van de MboxStorageReader klasse om een lezer‑object voor het bestand te maken. Het neemt de bestandsnaam en MboxLoadOptions als argumenten, waardoor de gebruiker het MBOX‑bestand kan laden met specifieke opties indien nodig.
Om berichten te extraheren, worden de volgende methoden en eigenschappen gebruikt:
- ’enumerate_message_info()’ methode van de MboxStorageReader klasse - Doorloopt elk bericht in het MBOX‑bestand.
- extract_message()‑methode van de MboxStorageReader klasse - Extraheert elk bericht op basis van zijn Entry‑ID.
- ’entry_id’ eigenschap van de MboxMessageInfo klasse - Haalt de entry‑identifier op.
Ten slotte wordt het bericht geconverteerd naar het EML‑formaat met behulp van EmlLoadOptions.
Het code‑voorbeeld hieronder toont het gebruik van deze functies om berichten uit een MBOX‑bestand te lezen en te extraheren:
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())
Laadopties configureren bij het lezen van berichten uit MBOX
Met Aspose.Email EmlLoadOptions klasse, kunt u extra opties opgeven bij het laden van MailMessage vanuit Eml-formaat. Bijvoorbeeld, u kunt een optie instellen om TNEF‑bijlagen te behouden tijdens het laden van een EML‑bestand met de eigenschap ‘preserve_tnef_attachments’ van de EmlLoadOptions klasse.
U kunt het volgende e‑mailbericht uit het mbox‑bestand lezen met de opgegeven laadsopties via de ‘read_next_message’-methode van de MboxStorageReader klasse en converteer het bestand naar PST‑formaat met de ‘mbox_to_pst’-methode van de MailStorageConverter klasse .
Het code‑voorbeeld hieronder toont het gebruik van deze methoden en eigenschappen om met e‑mailopslagbestanden te werken, waaronder het lezen van berichten uit het mbox‑formaat, het behouden van TNEF‑bijlagen en het converteren van berichten van mbox naar pst‑formaat:
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")
Voorkeurstekencodering instellen bij het laden van Mbox‑bestanden voor lezen
U kunt de tekencodering opgeven die gebruikt wordt bij het laden van een MBOX‑bestand. De eigenschap ‘preferred_text_encoding’ is beschikbaar voor de MboxLoadOptions klasse stelt een extra optie in en zorgt ervoor dat een bericht met gecodeerde inhoud correct wordt gelezen en verwerkt.
De volgende code‑snippet laat zien hoe deze functie in een project gebruikt wordt:
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()
MBOX naar PST converteren met behoud of verwijdering van een handtekening
Om de handtekening uit een bestand te verwijderen tijdens de conversie, stel de eigenschap MboxToPstConversionOptions.remove_signature in op true.
De volgende code‑voorbeeld toont hoe deze eigenschap gebruikt kan worden:
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)
Berichten schrijven
De MboxrdStorageWriter‑klasse biedt de mogelijkheid om nieuwe berichten te schrijven naar het mailopslagbestand van Thunderbird. Om berichten te schrijven:
- Open het Thunderbird‑opslagbestand in FileStream.
- Maak een instantie van de MboxrdStorageWriter‑klasse en geef de bovenstaande stream door aan de constructor.
- Maak een nieuw bericht aan met de MailMessage‑klasse.
- Roep de write_message()-methode aan en geef de bovenstaande MailMessage‑instantie door om het bericht toe te voegen aan de Thunderbird‑opslag.
- Sluit alle streams.
De volgende code‑fragment laat zien hoe je berichten naar de mailopslag van Thunderbird schrijft.
Totaal aantal berichten uit een MBox‑bestand ophalen
De MboxrdStorageReader‑klasse biedt de mogelijkheid om het aantal beschikbare items in een MBox‑bestand te lezen. Dit kan worden gebruikt om applicaties te ontwikkelen die de voortgang van de activiteit tonen tijdens het verwerken van zo’n bestand.