Programmering med Thunderbird
Läsa meddelanden
Mozilla Thunderbird är en öppen källkod, plattformsoberoende e‑postklient, utvecklad av Mozilla Foundation. Den lagrar e‑post i sin egen filstruktur och hanterar meddelandeindex och undermappar via proprietära filformat. Aspose.Email kan arbeta med Thunderbirds lagringsstrukturer. Klassen MboxrdStorageReader låter utvecklare läsa meddelanden från Mozilla Thunderbirds lagringsfil. Denna artikel visar hur man läser meddelanden från Thunderbirds e‑postlagring:
- Öppna Thunderbirds lagringsfil
- Skapa en instans av klassen MboxrdStorageReader och skicka med ovanstående ström till konstruktorn.
- Anropa read_next_message() för att få det första meddelandet.
- Använd samma read_next_message() i en while‑slinga för att läsa alla meddelanden.
- Stäng alla strömmar.
Följande kodsnutt visar hur du läser alla meddelanden från Thunderbirds e‑postlagring.
Hämta meddelandeegenskaper
För att läsa och hämta information från en Mbox-fil tillhandahåller Aspose.Email MboxStorageReader klass för att skapa ett läsobjekt för Mbox-filen och MboxLoadOptions klass för att ladda filen. Följande egenskaper hos MboxMessageInfo class kan användas för att komma åt och visa specifika meddelandedetaljer:
- ‘date’ - Hämtar meddelandets datum.
- ‘from_address’ - Hämtar från-adressen.
- ‘subject’ – Hämtar meddelandets ämne.
- ’to’ – Hämtar adresssamlingen som innehåller mottagarna av meddelandet.
- ‘cc’ – Hämtar adresssamlingen som innehåller CC‑mottagare.
- ‘bcc’ – Hämtar adresssamlingen som innehåller BCC‑mottagare för meddelandet.
Följande kodexempel visar hur man använder dessa egenskaper för att läsa och extrahera meddelandeinformation från en Mbox‑fil:
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}")
Extrahera meddelanden från MBOX med identifierare
För att läsa meddelanden från en MBOX‑fil tillhandahåller Aspose.Email ‘create_reader()’-metoden i MboxStorageReader klass för att skapa ett läsarobjekt för filen. Den tar filnamnet och MboxLoadOptions som argument, vilket låter användaren läsa in MBOX‑filen med specifika alternativ om så behövs.
För att extrahera meddelanden används följande metoder och egenskaper:
- ’enumerate_message_info()’-metoden i MboxStorageReader klass – Itererar genom varje meddelande i MBOX‑filen.
- ’extract_message()’-metoden i MboxStorageReader klass – Extraherar varje meddelande via dess Entry‑ID.
- ’entry_id’-egenskapen i MboxMessageInfo klass – Hämtar objektets identifierare.
Slutligen konverteras meddelandet till EML‑format med hjälp av EmlLoadOptions.
Kodexemplet nedan visar hur man använder dessa funktioner för att läsa och extrahera meddelanden från en MBOX‑fil:
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())
Konfigurera inläsningsalternativen när du läser meddelanden från MBOX
Med Aspose.Email EmlLoadOptions klass, kan du specificera ytterligare alternativ vid inläsning av MailMessage från Eml‑formatet. Till exempel kan du sätta ett alternativ för att bevara TNEF‑bilagor när du läser en EML‑fil med egenskapen ‘preserve_tnef_attachments’ i EmlLoadOptions klass.
Du kan läsa nästa e‑postmeddelande från mbox‑filen med de angivna inläsningsalternativen via ‘read_next_message’-metoden i MboxStorageReader klass och konverterar filen till PST‑format med ‘mbox_to_pst’-metoden i MailStorageConverter klass .
Kodexemplet nedan visar hur man använder dessa metoder och egenskaper för att arbeta med e‑postlagringsfiler, inklusive att läsa meddelanden i mbox‑format, bevara TNEF‑bilagor och konvertera meddelanden från mbox till pst‑format:
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")
Ställa in föredragen teckenkodning vid inläsning av MBOX‑filer för läsning
Du kan specificera teckenkodning som ska användas vid inläsning av en MBOX‑fil. Egenskapen ‘preferred_text_encoding’ finns tillgänglig för MboxLoadOptions klassen sätter ett ytterligare alternativ och säkerställer att ett meddelande med kodad innehåll läses och bearbetas korrekt.
Följande kodsnutt visar hur man använder denna funktion i ett projekt:
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()
Konvertera MBOX till PST med eller utan att bevara signatur
För att ta bort signaturen från en fil under konverteringen, sätt egenskapen MboxToPstConversionOptions.remove_signature till true.
Följande kodexempel visar hur man använder denna egenskap:
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)
Skriva meddelanden
Klassen MboxrdStorageWriter ger möjlighet att skriva nya meddelanden till Thunderbirds lagringsfil. För att skriva meddelanden:
- Öppna Thunderbirds lagringsfil i FileStream.
- Skapa en instans av klassen MboxrdStorageWriter och skicka med ovanstående ström till konstruktorn.
- Förbered ett nytt meddelande med MailMessage‑klassen.
- Anropa write_message()-metoden och skicka med ovanstående MailMessage‑instans för att lägga till meddelandet i Thunderbirds lagring.
- Stäng alla strömmar.
Följande kodsnutt visar hur du skriver meddelanden till Thunderbirds e‑postlagring.
Hämta totalt antal meddelanden från MBox‑fil
MboxrdStorageReader-klassen ger möjlighet att läsa antalet objekt som finns i en MBox-fil. Detta kan användas för att utveckla applikationer som visar aktivitetens förlopp medan filen bearbetas.