Програмиране с Thunderbird
Четене на съобщения
Mozilla Thunderbird е отворен източник, крос‑платформен имейл клиент, разработен от Mozilla Foundation. Той съхранява имейли в своя собствена файлова структура, управлявайки индекси на съобщения и подпапки чрез собственостни файлови формати. Aspose.Email може да работи с структури за съхранение на поща на Thunderbird. Класът MboxrdStorageReader позволява на разработчиците да четат съобщения от файл за съхранение на поща на Mozilla Thunderbird. Тази статия показва как да се прочетат съобщенията от хранилището на Thunderbird:
- Отворете файлът за съхранение на Thunderbird
- Създайте екземпляр на класа MboxrdStorageReader и предайте горния поток на конструктора.
- Извикайте read_next_message() за да получите първото съобщение.
- Използвайте същото read_next_message() в while цикъл, за да прочетете всички съобщения.
- Затворете всички потоци.
Следният кодов фрагмент показва как да прочетете всички съобщения от хранилището на поща на Thunderbird.
Извличане на свойства на съобщението
За да прочетете и извлечете информация от Mbox файл, Aspose.Email предоставя MboxStorageReader клас за създаване на обект за четене на Mbox файл и MboxLoadOptions клас за зареждане на файла. Следните свойства на MboxMessageInfo класът може да бъде използван за достъп и показване на конкретни детайли на съобщението:
- ‘date’ - Получава датата на съобщението.
- ‘from_address’ - Получава адреса на подателя.
- ‘subject’ - Взема темата на съобщението.
- ’to’ - Взема колекцията от адреси, съдържаща получателите на съобщението.
- ‘cc’ - Взема колекцията от адреси, съдържаща получателите CC.
- ‘bcc’ - Взема колекцията от адреси, съдържаща получателите BCC на съобщението.
Следният примерен код демонстрира използването на тези свойства за четене и извличане на информация за съобщения от 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}")
Извличане на съобщения от MBOX по идентификатори
За да чете съобщения от MBOX файл, Aspose.Email предоставя метода ‘create_reader()’ на MboxStorageReader клас за създаване на обект-четец за файла. Приема името на файла и MboxLoadOptions като аргументи, позволявайки на потребителя да зареди MBOX файла със специални опции, ако е необходимо.
За извличане на съобщения се използват следните методи и свойства:
- метод ’enumerate_message_info()’ на MboxStorageReader клас - Итерара чрез всяко съобщение в MBOX файла.
- метод ’extract_message()" на MboxStorageReader клас - Извлича всяко съобщение по неговия Entry ID.
- свойство ’entry_id’ на MboxMessageInfo клас - Взема идентификатора на елемент.
Накрая, съобщението се конвертира в EML формат, като се използва EmlLoadOptions.
Следният примерен код демонстрира използването на тези функции за четене и извличане на съобщения от 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())
Конфигуриране на опциите за зареждане при четене на съобщения от MBOX
С Aspose.Email EmlLoadOptions клас, можете да зададете допълнителни опции при зареждане на MailMessage от Eml формат. Например, можете да зададете опция за запазване на TNEF прикачени файлове, като използвате свойството ‘preserve_tnef_attachments’ на EmlLoadOptions клас.
Можете да прочетете следващото имейл съобщение от mbox файла, използвайки зададените опции за зареждане, с метода ‘read_next_message’ на MboxStorageReader клас и конвертирайте файла към PST формат с метода ‘mbox_to_pst’ на MailStorageConverter клас .
Следният примерен код демонстрира използването на тези методи и свойства за работа с файлове за съхранение на имейли, включително четене на съобщения от mbox формат, запазване на TNEF прикачени файлове и конвертиране на съобщения от mbox към 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")
Задаване на предпочитано текстово кодиране при зареждане на Mbox файлове за четене
Можете да зададете текстовото кодиране, което да се използва при зареждане на MBOX файл. Свойството ‘preferred_text_encoding’ е достъпно за MboxLoadOptions класът задава допълнителна опция и гарантира, че съобщението с кодираното съдържание ще бъде правилно прочетено и обработено.
Следният кодов отрезък показва как да се използва тази функция в проект:
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 към PST със запазване или премахване на подпис
За да премахнете подписа от файл по време на процеса на конвертиране, задайте свойството MboxToPstConversionOptions.remove_signature на true.
Следният примерен код показва как да се използва това свойство:
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)
Писане на съобщения
Класът MboxrdStorageWriter предоставя възможност за записване на нови съобщения във файл за съхранение на поща на Thunderbird. За да записвате съобщения:
- Отворете файлът за съхранение на Thunderbird във FileStream.
- Създайте екземпляр на класа MboxrdStorageWriter и предайте горния поток на конструктора.
- Подгответе ново съобщение, използвайки класа MailMessage.
- Извикайте метода write_message() и предайте горния екземпляр на MailMessage, за да добавите съобщението към съхранението на Thunderbird.
- Затворете всички потоци.
Следният кодов фрагмент ви показва как да записва съобщения в хранилището на поща на Thunderbird.
Получаване на общия брой съобщения от MBox файл
Класът MboxrdStorageReader предоставя възможност за четене на броя налични елементи в MBox файл. Това може да се използва за разработване на приложения, показващи прогреса на активността при обработка на такъв файл.