Читання повідомлень з Mozilla Thunderbird

Mozilla Thunderbird — популярний відкритий крос‑платформений клієнт електронної пошти, розроблений Mozilla Foundation. Він зберігає листи у власній файловій структурі та керує індексами повідомлень і підпапками за допомогою пропрітарних форматів файлів. Aspose.Email може працювати зі структурами сховища пошти Thunderbird. Зокрема, API містить MboxrdStorageReader клас, який дозволяє розробникам читати повідомлення з файлів сховища пошти Mozilla Thunderbird. У цій статті пояснюється, як читати повідомлення зі сховища електронної пошти Thunderbird за допомогою Aspose.Email.

Як читати повідомлення з файлів MBOX

Щоб читати повідомлення зі сховища пошти Thunderbird, виконайте наступні кроки:

  1. Відкрийте файл сховища Thunderbird.
  2. Створіть екземпляр MboxrdStorageReader клас і передайте файловий потік у його конструктор.
  3. Викличте read_next_message() метод для отримання першого повідомлення.
  4. Використовуйте цикл while з read_next_message() для ітерації по всіх повідомленнях.
  5. Закрийте всі файлові потоки після обробки.

Наступний фрагмент коду демонструє, як читати всі повідомлення з файлу сховища пошти 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 за допомогою entry ID. Наступні методи та властивості полегшують цей процес:

  • enumerate_message_info(): Ітерується по кожному повідомленню у файлі MBOX.
  • extract_message(): Витягує кожне повідомлення за його Entry ID.
  • entry_id: Отримує ідентифікатор запису.

Нижче наведений приклад коду демонструє використання цих можливостей для читання та витягнення повідомлень з MBOX‑файлу:

  1. Створіть читача MBOX за допомогою MboxStorageReader.create_reader() метод. Вкажіть файл для обробки та передайте MboxLoadOptions для налаштування параметрів завантаження.
  2. Перерахувати повідомлення, ітеруючись по кожному mbox_message_info шляхом виклику enumerate_message_info() у читача. Це надає доступ до метаданих кожного листа у файлі MBox.
  3. Витягнути окремі повідомлення. Для кожного запису інформації про повідомлення витягніть сам лист за допомогою методу 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

The MboxrdStorageReader клас, який забезпечує можливість читати кількість елементів у файлі MBox. Це можна використати для створення додатків, які показують прогрес процесу під час обробки такого файлу.

Отримати розмір конкретного повідомлення у MBOX