Чтение сообщений из Mozilla Thunderbird
Mozilla Thunderbird — популярный открытый кросс‑платформенный клиент электронной почты, разработанный Mozilla Foundation. Он хранит письма в собственной файловой структуре и управляет индексами сообщений и подпапками с помощью проприетарных форматов файлов. Aspose.Email может работать со структурами хранилища почты Thunderbird. В частности, API включает MboxrdStorageReader класс, позволяющий разработчикам читать сообщения из файлов хранилища почты Mozilla Thunderbird. Эта статья объясняет, как читать сообщения из хранилища почты Thunderbird с помощью Aspose.Email.
Как читать сообщения из файлов MBOX
Чтобы прочитать сообщения из хранилища почты Thunderbird, выполните следующие шаги:
- Откройте файл хранилища Thunderbird.
- Создать экземпляр MboxrdStorageReader класс и передайте файловый поток его конструктору.
- Вызвать read_next_message() метод для получения первого сообщения.
- Используйте цикл while с функцией read_next_message() для перебора всех сообщений.
- Закройте все файловые потоки после обработки.
Следующий фрагмент кода демонстрирует, как прочитать все сообщения из файла хранилища почты Thunderbird:
Получить свойства электронной почты из сообщений MBOX
Aspose.Email предоставляет MboxStorageReader класс для чтения сообщений и MboxLoadOptions класс для загрузки файлов MBOX. 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}")
Извлечение сообщений по ID из файлов MBOX
Aspose.Email позволяет извлекать сообщения из файла MBOX с помощью идентификаторов записей. Следующие методы и свойства упрощают этот процесс:
- enumerate_message_info(): Перебирает каждое сообщение в файле MBOX.
- extract_message(): Извлекает каждое сообщение по его идентификатору Entry ID.
- entry_id: Получает идентификатор записи.
Ниже приведён пример кода, показывающий использование этих возможностей для чтения и извлечения сообщений из файла MBOX:
- Создайте читатель MBOX с помощью MboxStorageReader.create_reader() метод. Укажите файл для обработки и передайте MboxLoadOptions для настройки параметров загрузки.
- Переберите сообщения, проходя по каждому mbox_message_info с вызовом enumerate_message_info() у чтения. Это обеспечивает доступ к метаданным каждого письма в файле MBox.
- Извлеките отдельные сообщения. Для каждой записи информации о сообщении извеките само письмо с помощью метода extract_message(). Передайте entry_id из mbox_message_info и EmlLoadOptions() для конфигураций загрузки электронной почты.
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 при загрузке файла EML, задав 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
Этот MboxrdStorageReader класс, предоставляющий возможность читать количество элементов, доступных в файле MBox. Это можно использовать для разработки приложений, показывающих прогресс работы при обработке такого файла.